반응형
클래스 초기화 블럭 클래스변수의 복잡한 초기화에 사용된다.
인스턴스 초기화 블럭 인스턴스변수의 복잡한 초기화에 사용된다.
초기화블럭은 생성자 보다 먼저 실행되기 때문에
모든 생성자에 공통으로 수행되어야 하는 문장들이 있을 때
중복을 제거하기 위해서 인스턴스 초기화 블럭에 넣어주면, 중복을 줄이면서 코드가 간결해질 수 있다.
{
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 {} 실행
{} 실행
생성자 실행
{} 실행
생성자 실행
실행결과를 보면 알 수 있듯이, 클래스 초기화 블럭이 가장 먼저 한 번만 실행이 되고, 인스턴스 초기화 블럭은 인스턴스가 생성될 때마다 실행이 된다.
반응형
'자바의정석' 카테고리의 다른 글
[자바의정석-기초편] ch1-1,2 자바란? 자바의 역사 (0) | 2022.01.18 |
---|---|
[자바의 정석] 자바의 정석 공부방법 (0) | 2022.01.18 |
[자바의정석] 참조변수란? (0) | 2021.06.25 |
[자바의정석] 가변인자(varargs) (0) | 2021.06.25 |
배열 크기 순 정렬 / 버블정렬 알고리즘 (0) | 2021.05.02 |