This

김경환·2021년 8월 24일

java

목록 보기
4/13

This

인스턴스 자신의 메모리를 가리킨다.
생성자에서 또 다른 생성자를 호출할 때 사용한다.
자신의 주소를 반환한다.

인스턴스가 생성되면 heap메모리에 저장되게 되는데 메소드를 호출하면 지역변수는 stack 메모리에 저장된다.
Thisstack에 저장되며 heap메모리를 가리키는 주소를 저장하게 된다.

생성자에서 또 다른 생성자를 호출하는 경우

클래스에 생성자가 여러 개인 경우, this로 호출이 가능하다.
그 경우 인스턴스의 생성이 완전하지 않은 상태이므로 this() statement이전에 다른 statement를 쓸 수 없다.

Ex)

public class Person {
    
    String name;
    int age;
    
    public Person(){
        this("no name",1);
    }
    
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
}

기본 생성자에 값을 넣는 것이 아닌 다른 생성자를 호출하여 기본 값을 넣어주는 모습이다.

자기 자신의 주소를 반환하는 경우

Ex)

public Person getPerson(){
    return this;
}

return으로 this를 받으면 그 객체의 주소 값을 가져올 수 있다.

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

person이라는 인스턴스의 참조 변수의 값과 person2라는 this의 값은 같은 값을 의미한다. (둘 다 stack 메모리내에 저장된 heap메모리를 가리키는 주소이다.)

0개의 댓글