1. 변수의 초기화
- 변수를 선언하고 처음으로 값을 저장하는 행위를 일컫는 말이다.
- 선언과 동시에 초기화하는 것이 적절한 초기화이다.
- 멤버 변수는 자료형에 기본값으로 자동 초기화되면 바로 사용 가능하다.
- 지역 변수는 반드시 초기화해야 사용할 수 있다.
2. 명시적 초기화 (explicit initialization)
명시적 초기화 : 변수 선언과 동시에 초기화하는 것이다.
명시적 초기화는 가장 우선적으로 고려되어야 하며 가장 간단한 초기화 방법이다.
int a = 5;
Sample sm = new Sample();
3. 초기화 블록(initialization block)
초기화 블록은 두 가지 종류가 있다. 인스턴스 초기화 블록과 클래스 초기화 블록이 있다.
초기화 블록 안에는 메서드와 같이 조건문, 반복문, 예외 처리 등의 작업을 할 수 있다.
class Sample {
private int a;
private static int b;
private int c;
// 인스턴스 초기화
{
this.a = 0;
}
// 클래스 초기화
static {
Sample.b = 0;
}
}
- 인스턴스 블록은 모든 생성자에 공통 코드로 넣는 데 사용한다.
- 생성자 보다 인스턴스 초기화 블록이 먼저 수행된다.
- 클래스 초기화 블록은 클래스가 메모리에 처음 로딩될 때 한 번만 수행된다.
4. 멤버 변수의 초기화 시기와 순서
4.1. 시점
클래스 변수의 초기화 : 클래스가 처음 로딩될 때 단 한번 실행된다.
인스턴스 변수의 초기화 : 인스턴스가 생성될 때마다 각 인스턴스 별로 생성된다.
4.2. 순서
클래스 변수의 초기화 : 기본 값 -> 명시적 초기화 -> 클래스 초기화 블록
인스턴스 변수의 초기화 : 기본 값 -> 명시적 초기화 -> 인스턴스 초기화 블록 -> 생성자
class Sample {
private int a;
private int b;
private int c;
{
System.out.println("인스턴스 초기화 블록");
}
static {
System.out.println("클래스 초기화 블록");
}
Sample() {
System.out.println("인스턴스 생성");
}
}
// 결과
// 클래스 초기화 블록
// 인스턴스 초기화 블록
// 인스턴스 생성
'개발 언어 > Java' 카테고리의 다른 글
[Java] Package와 import (0) | 2021.08.24 |
---|---|
[Java] 상속 (0) | 2021.08.24 |
[Java] 생성자 (0) | 2021.08.24 |
[Java] 오버로딩과 오버라이딩 (0) | 2021.08.24 |
[Java] 클래스와 객체 (0) | 2021.08.20 |