자바의정석
[자바의정석] 초기화 블럭(initialization block)
유호야
2021. 6. 25. 17:59
반응형
클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용된다.
인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용된다.
초기화블럭은 생성자 보다 먼저 실행되기 때문에
모든 생성자에 공통으로 수행되어야 하는 문장들이 있을 때
중복을 제거하기 위해서 인스턴스 초기화 블럭에 넣어주면, 중복을 줄이면서 코드가 간결해질 수 있다.
{
count++;
serialNo = count;
}
Car() {
color = "White";
gearType = "Auto";
}
Car(String color, String gearType){
this.color = color;
this.gearType = gearType;
}
중복을 제거하는 것이 코드의 신뢰성을 높이고 오류 발생가능성을 줄여주기 때문에, 재사용성을 높이고 중복을 제거하는 객체지향프로그래밍이 추구하는 궁극적인 목표에 가까워질 수 있다.
public class BlockTest {
static {
System.out.println("static {} 실행");
}
{
System.out.println("{} 실행");
}
public BlockTest() {
System.out.println("생성자 실행");
}
public static void main(String[] args) {
BlockTest b1 = new BlockTest();
BlockTest b2 = new BlockTest();
}
}
static {} 실행
{} 실행
생성자 실행
{} 실행
생성자 실행
실행결과를 보면 알 수 있듯이, 클래스 초기화 블럭이 가장 먼저 한 번만 실행이 되고, 인스턴스 초기화 블럭은 인스턴스가 생성될 때마다 실행이 된다.
반응형