변수의 초기화
- 지역변수(lv)는 수동 초기화 해야함 (사용전 꼭!!)
- 멤버변수(iv, cv)는 자동 초기화 된다.
class InitTest {
int x; // 인스턴스 변수
int y = x; // 인스턴스 변수
void method1() {
int i; // 지역변수
int j = i; // 에러. 지역변수를 초기화하지 않고 사용
}
}
멤버변수의 초기화
1. 명시적 초기화(=)
class Car { int door = 4; // 기본형(primitive type) 변수의 초기화 Engine e = new Engine(); // 참조형(reference type) 변수의 초기화
- 참조형 변수
- null : 기본값
- 객체주소
2. 초기화 블럭 -> 복잡한 초기화에 사용. 여러 문장.
- 인스턴스 초기화 블럭 : {}
- 클래스 초기화 블럭 : static {} - cv 초기화
3. 생성자 : iv 초기화, 복잡한 초기화에 사용.
- 클래스 변수 초기화 시점 : 클래스가 처음 로딩될 때 단 한번
- 인스턴스 변수 초기화 시점 : 인스턴스가 생성될 때 마다