자바의 "인스턴스 초기화 블럭" 또는 "인스턴스 초기화 블록(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
'JAVA > 포스팅' 카테고리의 다른 글
자바 더블 블럭 초기화 (Double-Brace Initialization) (0) | 2023.11.09 |
---|---|
자바 정적 초기화 블럭 (Static Initialization Block) (0) | 2023.11.09 |
자바 초기화 블럭(initialization block) (0) | 2023.11.09 |
자바 자동 초기화 (Automatic Initialization) (0) | 2023.11.09 |
자바 명시적 초기화 (Explicit Initialization) (0) | 2023.11.09 |