🌱 오늘의 주제 : 생성자에서 다른 생성자 호출하기 - this ( )
🌱 생성자에서 다른 생성자 호출하기 - this ( )
- 생성자 간에도 서로 호출이 가능하다.
- 적은 코드만을 변경하면 되므로 유지보수가 쉬워진다.
- 생성자의 이름으로 클래스이름 대신 this를 사용한다.
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
Car(String color) {
door = 5; // 첫번째 줄
Car(color, "auto", 4); // 에러1. 생성자의 두번째 줄에서 다른 생성자 호출
// 에러2. this(color, "auto", 4); 로 해야함.
public class Car2 {
// 생성자에서 다른 생성자 호출하기 - this( )
String color; //색상
String gearType; // 변속기 종류
int door;
Car2(){
this("white", "auto", 4); // Car2(String color, String gearType, int door) 호출.
}
Car2(String color){
this(color, "auto", 4); // Car2(String color, String gearType, int door) 호출.
}
Car2(String color, String gearType, int door){
this.color = color;
this.gearType = gearType;
this.door = door;
}
public class Ex6_13 {
public static void main(String[] args) {
// 생성자에서 다른 생성자 호출하기 - this ()
Car2 c1 = new Car2();
Car2 c2 = new Car2("blue");
System.out.println("c1의 color = " + c1.color + ", gearType = " + c1.gearType + ", door = " + c1.door);
System.out.println("c2의 color = " + c2.color + ", gearType = " + c2.gearType + ", door = " + c2.door);
}
}
< 실행 결과>
c1의 color = white, gearType = auto, door = 4
c2의 color = blue, gearType = auto, door = 4
🌱 this , this() 차이
this : 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. 모든 인스턴스메서드에 지역변수로 숨겨진 채로 존 재한다.
this(), this(매개변수) : 생성자, 다른 클래스의 다른 생성자를 호출할 때 사용한다.
'Java' 카테고리의 다른 글
Java - super( ), super, 오버라이딩 (0) | 2023.01.25 |
---|---|
Java - 클래스 간의 관계 - 포함관계 (0) | 2023.01.25 |
Java - 생성자 (0) | 2023.01.24 |
Java - 객체를 문자로 표현하는 toString() 사용하기 (0) | 2023.01.20 |
Java - Map 컬렉션, List 컬렉션 - Iterator 반복문 사용법 (0) | 2023.01.19 |