this()

 

생성자 간에 서로 호출을 하려면 다음과 같은 규칙을 만족해야함

1. 생성자의 이름으로 클래스이름 대신 this를 사용할 것

2.한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.

 

오류의 예시

Car(String color){
	door = 5;				//다른 생성자의 호출이 첫째줄이 아니다.
	Car(color,"auto",4);	//this(color,"auto",4);로 해야함

}

 

 


public class this1 {
    public static void main(String args[]){

        Car2 c1 = new Car2();
        Car2 c2 = new Car2("blue");     //생성자의 매개변수 유무를 이용함

        System.out.println("c1의 color :" +c1.color + " , gear :"+ c1.gear +"door :" + c1.door);
        System.out.println("c1의 color :" +c2.color + " , gear :"+ c2.gear +"door :" + c2.door);
    }
}

//class 만들자

class Car2{

    //변수
    String color;
    String gear;
    int door;

    //생성자
    Car2() {    //매개변수가 없는 기본 생성자  (생성자는 인스턴스 초기화 메서드임을 잊지 말자)
        this("white","auto",4);
    }

    Car2(String color){
        this(color,"auto",4);   //매개변수가 있는 생성자
    }

    Car2(String color, String gear, int door){

        this.color = color;
        this.gear = gear;
        this.door = door;

    }

}

매개변수로 아무것도 주어지지 않는다면 white ,auto,4가 기본적으로 들어갈것이다.

'JAVA > 객체지향, 클래스' 카테고리의 다른 글

객체 자신을 가리키는 참조변수 -this  (0) 2022.07.26
매개변수가 있는 생성자  (0) 2022.07.26
생성자  (0) 2022.07.26
오버로딩(overloading)  (0) 2022.07.26
메서드간의 호출과 참조  (0) 2022.07.26

+ Recent posts