참조변수 this
this는 두 가지 용도로 사용된다.
1. 생성자에서 다른 생성자를 호출하는 경우 this()
2. 객체 자신을 가리키는 참조변수 this
하나씩 살펴보자.
1. 생성자를 지칭하는 this()
생성자 간에도 서로 호출이 가능한데 생성자 내에서 생성자를 호출할 때는 클래스 이름이 아닌 this를 사용해야한다. 또한 생성자를 호출할 경우 첫 줄에서만 호출이 가능하다.
정리
1) 호출 시 클래스 이름 대신 this() 사용
2) 무조건 첫 번째 줄에서만 호출
class Car(){
String color;
String gearType;
int door;
Car (){
this("white","auto",4); // this로 이름 표기
}
Car (String c, String g, int d){
color = c;
gearTypr = g,
door = d;
}
}
2. 객체 자신을 가리키는 참조변수 this
매개변수가 있는 생성자를 설명할 때 사용했던 예시를 다시 사용해보자.
Car (String c, String g, int d){ // 매개변수를 사용한 생성자
color = c;
gearTypr = g,
door = d;
위 처럼 매개변수와 인스턴스 변수의 이름이 다를 경우는 상관이 없지만 만약 이름이 같다면 누가 인스턴스 변수이고 누가 지역변수인지 구분하는 것이 불가능하다.
Car (String color, String gearType, int door){ // 매개변수를 사용한 생성자
color = color;
gearTypr = gearType,
door = door;
// 누가 지역변수고 누가 인스턴스 변수인가?
그래서 인스턴스 변수임을 알려주는 참조변수가 this이다. 변수 앞에 this를 붙여서 인스턴스 변수임을 명시해준다.
Car (String color, String gearType, int door){ // 매개변수를 사용한 생성자
this.color = color;
this.gearTypr = gearType,
this.door = door;
// this가 인스턴스 변수임을 알려준다.'Java > 객체지향' 카테고리의 다른 글
| 패키지 (package) (2) | 2022.12.23 |
|---|---|
| 참조변수 super (0) | 2022.12.23 |
| 오버라이딩 (Overriding) (0) | 2022.12.23 |
| 상속과 포함 (0) | 2022.12.22 |
| 생성자, 변수의 초기화 (0) | 2022.12.14 |