생성자 역활 = 객체 초기화
생성자를 통해 필드 초기화 혹은 초기값 대입 가능
주의 - 생성자를 만들었을때 기본 생성자는 없는 상태로 기본 생성자 호출시 오류 발생
this란?
객체 자신을 표현하는 키워드
this는 인스턴스 자신 의미 -> this를 이용해 자신의 주소 반환
this()
객체 자신의 생성자를 호출하는 키워드
+) this() 키워드를 사용해서 다른 생성자를 호출할 때는 반드시 해당 생성자의 첫 줄에 작성
public Rectangle(int height) {
this.height = height * 2;
this(0, height);
}
생성자를 첫줄에 안쓸시 this.height ~ 코드가 무의미 해짐
=> 초기화 작업이 중복으로 이루어지며, 무엇이 마지막에 실제로 저장되는지에 대한 혼란이 발생
이와 같은 혼란을 방지하기 위해 Java에서는 생성자에서 다른 생성자를 호출할 때 (this() 또는 super()) 해당 호출이 첫 번째 문장이어야 한다는 규칙을 설정