this와 this()
자바에서 this는 객체 자기 자신(참조값)을 가리키는 레퍼런스 변수이며, 자신의 객체에 접근하기 위해 사용한다.
주로 필드와 매개변수 명이 동일할 때, 명확한 구분을 위해 사용한다.
this() 같은 경우는 같은 클래스 내 생성자가 다른 생성자를 호출할 때 사용한다.
생성자는 매개변수를 다양하게 받아올 수 있는데(오버로딩), this()를 이용하면 중복 코드를 간단하게 할 수 있다.
주의할 점으론 생성자에서만 사용이 가능하며, 반드시 호출하는 곳의 첫 번째 문장에 작성해야 한다.
아래의 Member 클래스 예제를 살펴보자
public class Member {
private int id;
private String username;
private int age;
public Member() {}
public Member(int id) {
this(id, "name", 20); // this()
}
public Member(String username, int age) {
this.username = username; // this.
this.age = age;
}
}
만약 this를 사용하지 않는다면 매개변수 이름과 대입하는 이름이 동일하여 제대로 값이 입력되지 않는다.
보통 생성자나 setter 메서드를 사용할 때 this 키워드가 사용되고는 한다.
코드를 작성하다보면 어떻게 동작하는 지는 알아도 제대로 아는지는 잘 모르겠어서 간단하게 작성해봤다.