JAVA

자바 객체지향 프로그래밍 - 7 [this]

덴마크 당나귀 2022. 12. 23. 10:25
728x90

this의 역할

- 자신의 메모리를 가리킴

- 생성자에서 다른 생성자를 호출 함

- 인스턴스 자신의 주소를 반환

 

생성자에서 다른 생성자를 호출

public Person(){
    this("이름없음",1);
}

public Person(String name, int age){
    this.name = name;
    this.age = age;
}

 

위와 같이 기본 생성자에서 this를 사용해서 다른 생성자를 호출해서 사용할 수 있다. 아래와 같이 코드를 돌려보면

 

public class PersonTest {

    public static void main(String[] args) {
        Person person = new Person();
        person.showInfo();

        Person person1 = new Person("lee", 20);
        person1.showInfo();

    }
}

 

위와 같이 했을 때 나오는 출력값을 확인하면

결과값

이런식으로 기본적으로 생성자를 호출할 때 인자가 없다면, 기본 생성자에서 this를 사용해서 다른 생성자를 호출한 것을 확인 할 수 있다.

 

추가적으로 기본생성자에서 다른 생성자를 호출할 때 주의해야 될 점은 this를 통해 호출할 때 다른 선언문이 없어야 된다는 것이다. 즉

public Person(){
    this("이름없음",1);
}

public Person(String name, int age){
    this.name = name;
    this.age = age;
}

this("이름없음",1); 이 위에 age = 10;이 먼저 선언되면 안된다는 것이다.

 

더불어 각 클래스에서 return this;를 하면 그대로 인스턴스 그 자체를 가져오게 되는데, 아

 

이 코드를 실행해보면, 

이렇게 코드를 실행시켜 보면,

같은 주소값이 나오는 것을 통해 return this를 하면 그 인스턴스 그 자체를 반환한다는 것을 알 수 있다.

728x90