- 이유 : 생성자 내에서 초기화 작업도중에 다른 생성자를 호출하게 되면 호출된 다른 생성자 내에서도 멤버변수들의 값을 초기화 할 것이므로 다른 생성자를 호출하기 이전의 초기화 작업이 무의미해질 수 있다.
- this() : 메서드 안에서 사용하자.
class Car { String color; String gearType; int door;
Car() { //① 생성자 this("White", "auto", 4); // 매개변수로 ③ 생성자를 호출한다. } //↖이름이 같지만 매개변수 3개를 받아들이는 함수 Car(String color) { //② 생성자
this(color, "auto", 4); // 매개변수로 ③ 생성자를 호출한다. } //↖이름이 같지만 매개변수 3개를 받아들이는 함수 Car(String color, String gearType, int door) { //③ 생성자 this.color = color; this.gearType = gearType; this.door = door; //this를 붙여서 인스턴스(객체_c1,c2)변수라고 구별한다. } //this가 없는 것은 지역변수 }
public class CarTest2 { public static void main(String[] args) { Car c1 = new Car(); //① 번 생성자로 객체를 생성한다. Car c2 = new Car("blue"); // 매개변수가 1개인 ②번 생성자로 객체를 생성한다.