MapleStory Cookie With Halo

☕ JAVA/☕ Class & Method

[JAVA]예약어 static, final, abstract

뉴이 NUEY 2024. 3. 31. 22:53
반응형

 

static
: class의, 공통적인
class StaticTest {
    static int width = 200;         // class 변수(static 변수)
   
    static {                        // class 초기화 block
        // static변수의 복잡한 초기화 수행
    }

    static int max(int a, int b) {  // class method(static method)
        return a > b ? a : b;
    }
}
  • CV
    Class Vairable
    • 모든 instance에 공통적으로 사용되는 class변수가 된다.
    • class 변수는 instance를 생성하지 않고도 사용 가능하다.
    • memory에 load될 때(프로그램이 처음 돌아갈 때) 생성되기 때문에.
      (그래서 클래스 변수Class variable이라고 한다.)
  • Method
    • instance를 생성하지 않고도 호출이 가능한 static method가 된다.
    • static method 내에서 instance member들을 직접 사용할 수 없다

 

memory 참조

2023.01.08 - [☕ 자바 JAVA/☕ 개발환경] - [JAVA]단순히 정리한 JVM구조와 Memory(+ static)


final
: 마지막의, 변경될 수 없는
final class FinalTest {         // 조상이 될 수 없는 class
    final int MAX_SIZE = 10;    // 값을 변경할 수 없는 member변수(상수)
   
    final void getMaxSize() {   // overriding할 수 없는 method(변경불가)
        final int LV = MAX_SIZE;// 값을 변경할 수 업슨 local변수(상수)
    }
}
  • Class
    • 변경될 수 없는 class, 확장될 수 없는 class가 된다.
    • 그래서 final로 지정된 class는 다른 class의 조상이 될 수 없다.
    • 대표적으로 String과 Math class가 있다.
      (Math class는 모두 static으로 되어있음)
  • Method
    • 변경될 수 없는 method, final로 지정된 method는 overriding을 통해 재정의 될 수 없다.
  • 상수
    • 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 된다.

abstract
: 추상의, 미완성의

 

abstract class AbstractTest {   // 추상 class(추상 method를 포함)
    abstract void move();       // 추상 method(구현부{ }가 없음)
}
  • Class
    • class 내에 abstract method가 선언되어 있음.
    • 추상 class의 instance 생성불가.
      ex) AbstractTest a = new AbstractTest(); -> error
  • Method
    • 선언부만 작성하고 구현부는 작성하지 않은 추상 메서드.
반응형