JAVA/포스팅

자바 초기화 블럭(initialization block)

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

자바 초기화 블럭(Initialization Block)은 클래스 내부에서 변수나 객체를 초기화하는 코드 블럭입니다. 이것은 클래스의 생성자나 메서드를 통해 초기화를 수행하는 대안으로 사용될 수 있으며, 다양한 초기화 작업을 수행하기 위한 유연한 방법을 제공합니다. 자바에서는 다음 세 가지 종류의 초기화 블럭이 있습니다.

 

1. 인스턴스 초기화 블럭 (Instance Initialization Block)

인스턴스 초기화 블럭은 객체가 생성될 때마다 실행되는 블럭입니다. 클래스의 인스턴스 변수를 초기화하는데 주로 사용됩니다. 다음은 인스턴스 초기화 블럭의 예제입니다.

public class MyClass {
    int x;
    {
        // 인스턴스 초기화 블럭
        x = 10;
    }
}

 

2. 정적 초기화 블럭 (Static Initialization Block)

정적 초기화 블럭은 클래스가 로드될 때(최초로 사용될 때) 한 번 실행되는 블럭입니다. 주로 클래스 변수를 초기화하는데 사용됩니다. 다음은 정적 초기화 블럭의 예제입니다.

public class MyClass {
    static int y;
    static {
        // 정적 초기화 블럭
        y = 20;
    }
}

 

3. 더블 블럭 초기화 (Double-Brace Initialization)

이 패턴은 익명 내부 클래스와 초기화 블럭을 결합하여 객체 초기화 블럭처럼 보이게 만드는 방법을 제공합니다. 주로 컬렉션 초기화나 복잡한 초기화를 단순화하기 위해 사용됩니다. 다음은 더블 블럭 초기화의 예제입니다.

Set<String> set = new HashSet<String>() {{
    add("Java");
    add("C++");
}};

자바 초기화 블럭은 코드의 재사용성과 가독성을 향상시키며, 복잡한 초기화 작업을 쉽게 수행할 수 있도록 도와줍니다. 각 종류의 초기화 블럭은 특정한 상황에 맞게 선택하여 사용할 수 있습니다.

 

With ChatGPT