this와 this()의 의미와 사용법에 대한 기록이다.
1) this는 인스턴스 자신을 가리키는 키워드이다.
- 생성자의 이름으로 클래스이름 대신 this를 사용한다.
- 주로 멤버변수와 매개변수의 이름이 동일할 때, 이를 구분하기 위해 사용된다.
2) this()는 생성자에서 다른 생성자를 호출할 때 사용된다.
- 코드 중복을 줄일수 있다.
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
1) 클래스 정의
class Guitar {
String type;
int price;
public Guitar() { // 기본 생성자
this("미입력", -1);
}
public Guitar(String type) { // 매개변수 1
this(type, 0);
}
public Guitar(String type, int price) { // 매개변수 2
this.type = type;
this.price = price;
}
public void showInfo() {
System.out.println(type + "기타의 가격은 " + price);
}
}
2) 객체 생성과 실행
public class MyThis{
public static void main(String[] args) {
Guitar g1 = new Guitar();
Guitar g2 = new Guitar("베이스");
Guitar g3 = new Guitar("일렉", 500000);
g1.showInfo();
g2.showInfo();
g3.showInfo();
}
}
참고
KADOSHoly
자바의 정석