Java/Java의 정석 - 객체지향프로그래밍
변수의 초기화
결국 이기는 사마의
2022. 2. 3. 16:14
변수의 초기화
인스턴스 내의 멤버변수는 초기화를 하지 않아도 변수의 자료형에 맞는 기본값으로 자동초기화되지만, 지역변수는 사용하기 전에 반드시 초기화해야 한다.
명시적 초기화(explicit initialization)
1
2
3
4
5
|
class Name{
int x = 0;
int y = 0;
//...
}
|
cs |
이처럼 변수의 선언과 동시에 초기화하는 것이 명시적 초기화이다. 더 복잡한 초기화를 위해서는 초기화블럭이나 생성자를 활용해야 한다.
초기화 블럭(initialization block)
초기화블럭은 {}, static{}로 작성한다. 클래스 초기화블럭은 클래스가 메모리에 처음 로딩될 때 한 번만 수행되며, 인스턴트 초기화블럭은 인스턴트가 생성될 때마다 수행된다.
1
2
3
4
5
6
7
8
9
10
|
class Name{
int x;
{ /* 인스턴스 초기화블럭*/ }
static y;
static {/* 클래스 초기화블럭 */}
//...
}
|
cs |
인스턴트 변수의 초기화는 주로 생성자를 사용하고, 인스턴스 초기화블럭은 모든 생성자에서 공통으로 수행해야 하는 코드를 넣는데 사용한다.