this()

호떡·2022년 7월 25일
0

✍️관련 강의: 클래스_생성자


"두 번째 생성자 Student(String major) 를 기본 생성자 Student() 에서 호출한다."

public class Student{

	String major;
    
    public Student() {
    	this("전공선택안함");
    }
    
    public Student(String major) {
    	this.major = major;
    }

} //end class

"기본생성자에 this("전공선택안함")이라고 넣는 건 다음 생성자로 점프하라"

이 경우는 this("전공선택안함"); 을 넣은 이유는 기본 생성자를 호출할 때 필드가 기본값인 null로 초기화될텐데 사용자에게 null을 표시할 수 없기 때문에 아래의 생성자를 호출하여 위의 예시처럼 설정해둘 수 있다.


❓아직은 이해가 와닿지 않지만, 모듈화? 상속? 이런 얘기도 하는데... 상속과 관련하여 이해를 하자면 부모의 생성자 super()가 반드시 호출이 될텐데, 명시적으로 생성자를 생성할 경우 귀찮아지므로 일단 기본생성자도 생성해두고 this()로 그 아래의 생성자들을 호출하여 위의 예시처럼 "전공선택안함" "이름입력안함" 과 같이 사용자를 위해 this()를 넣을 수 있겠단 생각은 하였다...


❓❓생성자 여러 개 부를 때마다 모든 생성자에서 동일하게 구현하고 싶은 것들을 이런식으로 기본 생성자에 담아두고 다른 모든 생성자에 this() 하는 식으로 쓰인다고 하셨던거 같아요.
모듈화(?) 해서 기본생성자에서만 수정해도 다른데서 다 수정되니까 유지보수가 편하다..?

0개의 댓글