6.9.1 변수의 초기화
- 멤버변수(클래스 및 인스턴스 변수)는 타입에 맞게 자동으로 초기화가 되지만, '지역변수' 자동으로 초기화가 되지 않으므로 사용 전에 초기화가 필요하다.
6.9.2 멤버변수 초기화 방법
- 명시적 초기화(explicit initialzation)
- 생성자(constructor)
- 초기화 블럭(initialzation block)
- 인스턴스 초기화 블럭 : 인스턴스 변수 초기화
- 클래스 초기화 블럭 : 클래스 변수 초기화
6.9.3 명시적 초기화
- 선언과 동시에 초기화하는 방법
class Car{
int door = 4;
}
6.9.4 초기화 블럭
- 인스턴스 초기화 블럭
- 인스턴스가 생성될 때마다 실행됨
- 생성자보다 먼저 실행됨
- 클래스 초기화 블럭
- 메모리에 클래스가 로딩될 때 한 번만 실행됨
class BlockTest{
static{ //클래스 초기화 블럭
}
{ //인스턴스 초기화 블럭
}
public void BlockTest(){ //생성자
}
}
class MainClass{
public static void main(String[] args){
BlockTest b1 = new BlockTest();
}
}
/*
1. 클래스 초기화 블럭
2. 인스턴스 초기화 블럭
3. 생성자
*/
6.9.5 멤버변수의 초기화 시기
- 클래스 변수 초기화 시점 : 클래스가 처음 로딩될 때 한번만 실행
- 인스턴스 변수 초기화 시점 : 인스턴스가 새로 생성될 때 마다
6.9.6 멤버변수의 초기화 순서
- 클래스 변수의 초기화 순서 : 기본값 → 명시적 초기화 → 클래스 초기화 블럭
- 인스턴스 변수의 초기화 순서 : 기본값 → 명시적 초기화 → 인스턴스 초기화 블럭 → 생성자
'자바의 정석 정리' 카테고리의 다른 글
자바의 정석 - 7.2 단일상속 (0) | 2022.06.13 |
---|---|
자바의 정석 - 7.1 상속 (0) | 2022.06.13 |
자바의 정석 - 6.8 생성자 (0) | 2022.06.10 |
자바의 정석 - 6.7 오버로딩 (0) | 2022.06.10 |
자바의 정석 - 6.6 클래스와 인스턴스 (0) | 2022.06.10 |