자바에서 생성자에서 다른 생성자를 호출하는 것을 생성자 체이닝(Constructor Chaining)이라고 합니다. 생성자 체이닝을 사용하면 여러 개의 생성자가 서로 호출될 수 있으며, 코드의 중복을 피하고 유연한 초기화를 할 수 있습니다. 생성자 체이닝은 다음 두 가지 방법으로 구현할 수 있습니다.
1) this() 키워드를 사용하여 다른 생성자 호출 : this() 키워드를 사용하여 같은 클래스 내의 다른 생성자를 호출할 수 있습니다. 이때, this()를 사용하는 생성자는 다른 생성자를 호출하는 역할을 합니다.
2) super() 키워드를 사용하여 부모 클래스의 생성자 호출 : 하위 클래스에서 상위 클래스의 생성자를 호출할 때 super() 키워드를 사용할 수 있습니다. 이는 상속 관계에서 부모 클래스의 생성자를 호출하는 데 사용됩니다.
다음은 각각의 방법에 대한 설명과 예제입니다.
1. this() 키워드를 사용한 생성자 체이닝
public class MyClass {
private int value;
// 첫 번째 생성자
public MyClass() {
this(0); // 다른 생성자 호출
}
// 두 번째 생성자
public MyClass(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
위의 예제에서 두 개의 생성자가 있으며, 첫 번째 생성자는 this() 키워드를 사용하여 두 번째 생성자를 호출하고 있습니다. 이렇게 하면 this()를 호출하는 생성자에서 초기화 코드를 공유할 수 있습니다.
2. super() 키워드를 사용한 생성자 체이닝 (상속 시)
public class Parent {
private int value;
public Parent() {
this(0);
}
public Parent(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
public class Child extends Parent {
private String name;
public Child() {
super(); // 부모 클래스의 생성자 호출
name = "Child";
}
public Child(String name) {
super(); // 부모 클래스의 생성자 호출
this.name = name;
}
}
위의 예제에서 Child 클래스는 Parent 클래스를 상속하고 있으며, super() 키워드를 사용하여 부모 클래스의 생성자를 호출하고 있습니다. 이렇게 하면 부모 클래스와 자식 클래스의 생성자를 연결할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 this 키워드를 사용하여 다른 생성자 호출 (0) | 2023.11.09 |
---|---|
자바 this() 키워드를 사용하여 다른 생성자 호출 (0) | 2023.11.08 |
자바 매개변수가 있는 생성자 (0) | 2023.11.08 |
자바 기본 생성자 (0) | 2023.11.08 |
자바 생성자란? (0) | 2023.11.08 |