ch6-36 생성자 this()
- 같은 클래스 안에 있는 생성자들끼리 호출할 때, 클래스 이름 대신에 this 사용
- 다른 생성자 호출시 첫 줄에서만 사용 가능.
생성자가 하는 일 : iv 초기화
코드 중복을 제거하기 위해, 생성자들끼리 서로 호출한다.
ch6-37 참조변수 this
- 인스턴스 자신을 가리키는 참조변수
- 인스턴스 메서드(생성자 포함)에서 사용 가능
- 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용
원래 인스턴스 변수 쓸 때, "참조변수.변수이름" 으로 쓰지만
같은 클래스니까, this 생략 가능
하지만 오른쪽 같은 경우는, this를 생략하면 이름이 똑같으니까 지역변수랑 구분이 안 되기 때문에 this 붙여주기
<정리>
public class MyMath {
// iv
long a,b; //this.a, this.b -> 진짜 이름 (this 생략 가능)
MyMath(int a, int b) { // 매개변수 : lv
this.a = a; // this.a : iv, a : lv
this.b = b; // this.b : iv, b : lv
// 여기서는 this를 왜 써?
// iv랑 lv 구별하려고! this 생략 불가!
// this는 인스턴스 메서드(생성자 포함)에서만 사용 가능
}
long add() {
// iv
return a + b; // return this.a + this.b
}
static long add(long a, long b) { // 클래스 메서드(static메서드)
// 클래스 메서드에서 this 사용 불가
// 클래스 메서드는 객체 생성 없이 호출하기 때문에. iv 사용 불가.
// 매개변수 : lv, a + b : lv
return a + b; // lv
}
}

'자바의 정석 가자!' 카테고리의 다른 글
[자바의 정석 - 기초편] ch7-1~4 상속, 클래스 간의 관계, 상속과 포함 (0) | 2022.11.03 |
---|---|
[자바의 정석 - 기초편] Chapter6 - 38 ~ 41 변수의 초기화, 멤버변수의 초기화 (2) | 2022.10.31 |
[자바의 정석 - 기초편] Chapter6 - 30,31 오버로딩(overloading) (0) | 2022.10.27 |
[자바의 정석 - 기초편] Chapter6 - 26 ~ 29 static메서드(클래스 메서드)와 인스턴스 메서드 (0) | 2022.10.26 |
[자바의 정석 - 기초편] Chapter6 - 23,24 기본형 매개변수, 참조형 매개변수, 참조형 반환타입 (0) | 2022.10.26 |