JAVA/포스팅

자바 인스턴스 초기화 블럭 (Instance Initialization Block)

짜집퍼박사(짜박) 2023. 11. 9. 10:06

자바의 "인스턴스 초기화 블럭" 또는 "인스턴스 초기화 블록(Instance Initialization Block)"은 객체가 생성될 때 실행되는 코드 블록입니다. 이 블록은 객체의 인스턴스 변수를 초기화하거나 복잡한 초기화 로직을 수행하는 데 사용됩니다. 

 

인스턴스 초기화 블록의 특징

 

- 인스턴스 초기화 블록은 중괄호({})로 묶인 코드 블록으로, 객체 생성 시 호출됩니다.
- 클래스 내부에 선언되며, 생성자보다 먼저 실행됩니다.
- 한 클래스 내에 여러 개의 인스턴스 초기화 블록을 선언할 수 있습니다.
- 인스턴스 초기화 블록은 객체마다 독립적으로 실행되며, 객체 생성 시마다 호출됩니다.

인스턴스 초기화 블록의 사용 예제

public class MyClass {
    int x; // 인스턴스 변수

    {
        // 인스턴스 초기화 블록
        x = 10; // x 변수를 초기화
        System.out.println("인스턴스 초기화 블록 실행");
    }

    public MyClass() {
        // 생성자
        System.out.println("생성자 실행");
    }

    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        System.out.println("obj1.x = " + obj1.x);
        System.out.println("obj2.x = " + obj2.x);
    }
}

위의 예제에서 MyClass 클래스에는 인스턴스 변수 x가 있으며, 이 변수를 인스턴스 초기화 블록을 사용하여 초기화합니다. 객체를 생성할 때 인스턴스 초기화 블록이 실행되며, 초기화 작업을 수행합니다. 객체를 생성할 때마다 초기화 블록이 실행되므로 각 객체는 독립적으로 초기화됩니다.

출력은 다음과 같을 것입니다.

인스턴스 초기화 블록 실행
생성자 실행
인스턴스 초기화 블록 실행
생성자 실행
obj1.x = 10
obj2.x = 10

인스턴스 초기화 블록은 주로 초기화 코드를 재사용하고, 여러 생성자에서 공통적으로 수행해야 하는 작업을 처리할 때 유용합니다. 또한 객체 초기화 시 더 복잡한 로직을 수행하는 데 유용합니다.

 

With ChatGPT