public class ModifierTest {
public static final int WIDTH = 200;
public static void main(String[] args) {
System.out.println("WIDTH="+WIDTH);
}
}
class StaticTest {
static int width = 200; // 클래스 변수(static 변수) , 간단초기화(명시적 초기화)
static int height = 120; // 클래스 변수(static 변수) , 간단초기화(명시적 초기화)
static {
// static 변수의 복잡한 초기화 수행
}
static int max(int a, int b) { // 클래스 메서드(static 메서드) - iv 사용불가, im(instance method) 사용불가
return a > b ? a : b;
}
}
final class FinalTest { // 조상이 될 수 없는 클래스
final int MAX_SIZE = 10; // 값을 변경할 수 없는 멤버변수(상수)
final void getMaxSize() { // 오버라이딩할 수 없는 메서드(변경불가)
final int LV = MAX_SIZE; // 값을 변경할 수 없는 지역변수(상수)
return MAX_SIZE;
}
}
abstract class AbstractTest { // 추상 클래스(추상 메서드를 포함한 클래스)
abstract void move(); // 추상 메서드({} 구현부가 없는 메서드)
}
AbstractTest a = new AbstractTest(); // ERROR! 추상 클래스의 인스턴스 생성 불가
그럼 추상클래스는 어떻게 사용할까?
하나의 대상에 네가지 중 하나만 사용할 수 있다.