1. Static
- 객체 소속인 일반 필드들과는 달리, static 멤버 변수는 클래스 소속의 변수로, 객체들이 공유한다.
즉, 한 클래스의 객체를 10번 호출해도 스태틱 멤버 변수는 단 하나밖에 생성되지 않는다.
따라서 어느 객체가 이 스태틱 변수를 호출하던 그 변수는 똑같은 변수이므로 결과값은 값다.
- 스태틱 멤버 변수는 생성자에서 초기화하면 안된다.
1) 필드를 만들면서 바로 초기화 하거나
2) 정적초기화 영역 (static initializer) 에서 초기화 해야 한다.
ex>
class Test4{
static int cnt = 0; // 초기화 방법 1 : 필드 만들면서 바로 초기화
static{//정적 초기화 영역 (static initializer)
cnt = 0;// 초기화 방법 2
}
void printCnt(){
System.out.println(cnt);
}
public Test4(){// 생성자 : 일반 필드 초기화
cnt++;// 정적 필드는 생성자에서 초기화 하면 안된다.
}
}
* final
- final 상수는 생성자에서 초기화가 가능하다.
ex>
final int a; // 초기화 가능한 상수(객체마다)
static final int b = 10; // 초기화 불가능.
'개발메모장' 카테고리의 다른 글
lombok 2 (0) | 2014.12.18 |
---|---|
JAVA 상속, 오버라이딩 (0) | 2014.12.18 |
JAVA 클래스 구현2 (0) | 2014.12.18 |
ArrayList 예제 (0) | 2014.12.18 |
JAVA 클래스 구현 (0) | 2014.12.18 |