[Java] this 키워드

김주원·2020년 10월 16일
1
post-thumbnail

Java의 this 키워드

Java의 this 키워드는 클래스가 인스턴스화 되었을때의 자기자신의 메모리 주소를 담고있는 키워드이다.

객체 자기자신의 메모리 주소를 담고있으므로 도트연산자(.)를 이용해 접근하여 멤버 변수와 메소드를 사용할 수 있다.

예시

public class User {
    private Integer id;
    protected String account;
    public String password;

    public void printId() {
        System.out.println(this.id);
    }
    
    public void printAll() {
        this.printId();
        System.out.println(this.account);
        System.out.println(this.password);
    }
}

위 코드를 보면 this를 통해 멤버변수나 메소드에 접근하여 사용하는 것을 확인할 수 있다.

this()

클래스 내부에서 this()를 호출하면 생성자를 호출한다.
물론 매개변수가 있는 생성자라면 그에 맞게 인자를 넣어주어 호출하면 된다.

예시

public class User {
    private Integer id;
    protected String account;
    public String password;

    public User(Integer id, String account, String password) {
        this.id = id;
        this.account = account;
        this.password = password;
    }

    public User(Integer id) {
        this(id, "a", "b");
    }
}

위 코드를 보면 매개변수가 하나인 생성자에서 매개변수가 3개인 생성자를 호출하고 있는것을 알수있다.

this()를 통해 생성자를 호출할때는 다음의 2가지 제약이 있다.
1. 생성자에서만 호출가능하다.
2. 제일 첫 문장에서 호출해야한다.
3. 생성자 자기 자신을 호출할 수 없다.(재귀호출이 불가능하다.)

profile
자기계발 블로그

0개의 댓글