자바의 정석 강의를 기반으로 작성했습니다.
- 생성자 this()
* 생성자에서 다른 생성자 호출할 때 사용
* 다른 생성자 호출시 첫 줄에서만 사용 가능
* 같은 클래스의 다른 생성자를 호출할 때 사용합니다.
- 참조변수 this
* 인스턴스 자신을 가리키는 참조 변수
* 인스턴스 주소가 저장되어 있습니다.
* 인스턴스 메서드(생성자 포함) 에서 사용가능
* LV 와 IV 를 구별할 때 사용한다.
* 모든 인스턴스 메서드에 지역 변수로 숨겨진채로 존재합니다. ( 선언을 하지 않아도 사용이 가능 )
Car(String c, String g, int d) {
// 같은 클래스 내에선 this 생략 가능
// color는 iv, c는 lv
color = c;
gearType = g;
door = d;
Car(String color, String gearType, int door) {
// this.color는 iv, color는 lv
this.color = color;
this.gearType = gearType;
this.door = door;
}
public class This {
long a, b ; // this.a , this.b 진짜 이름
// 인스턴스 변수
This(int a, int b) { // 생성자
this.a = a; // 똑같은 이름의 지역변수 int a, int b가 선언되어 있기 때문에
this.b = b; // 생략이 불가능하고 참조변수 this를 통해 인스턴스 변수(this.a, this.b)와 지역변수(a,b)를 구분해 준다.
}
long add () { // 인스턴스 메서드
return a + b; // return this.a + this.b;
// 인스턴스 변수
}
static long add(long a, long b) { // 클래스 메서드(static 메서드)
return a + b; // long a, long b와 return문의 a, b는 같은 지역변수이기 때문에 this 사용 불가
// static 메서드는 객체 생성없이 호출이 가능하기 때문에 iv 사용 불가. 그러므로 this 사용을 못하는 것임.
}
}
'Programming > Java' 카테고리의 다른 글
[JAVA STUDY] 4주차 : 제어문 (0) | 2021.10.27 |
---|---|
[JAVA] 변수의 초기화 (0) | 2021.10.11 |
[JAVA] 생성자(constructor), 자바 생성자 (0) | 2021.10.11 |
[JAVA] 오버로딩(Overloading) (0) | 2021.10.11 |
[JAVA] return문, return, 리턴문, 호출스택 (0) | 2021.10.09 |