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