6-36 생성자 this()
this() - 1. 생성자에서 다른 생성자 호출할 때 사용,
같은 클래스 안에 있는 생성자들끼리 호출할 때 사용
2. 다른 생성자 호출시 첫 줄에서만 사용가능
코드의 중복을 제거하려고 생성자들끼리 호출한다.
A가 B를 호출하거나 B가 A를 호출하게 해서 코드의 중복을 제거한다.
6-37 참조변수 this
생성자 this()랑 참조변수 this랑 다르다! 연관x
1. 참조변수 this - 인스턴스 자신을 가리키는 참조변수
2. 인스턴스 메서드(생성자 포함)에서 사용가능
(생성자도 인스턴스 메서드 중 하나이다.)
3. 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용
같은 클래스내에서 참조변수 this가 생략이 가능하다.
그러나 오른쪽 예제에 this.color = color; 에서 this가 생략이 불가한 이유는
color = color;가 구분이 안되기 때문이다.
iv와 lv가 이름이 같다면 서로를 구분하기 위해서 원래대로 this.를 붙여준다.
this는 선언 하지 않고 사용 가능하다.
선언하지 않고 사용할 수 있는 변수
생성자하고 인스턴스 메서드에서 this 사용가능
static 메서드의 a, b는 lv다.
static 메서드는 this도 사용불가
클래스메서드는 객체 생성 없이 호출하기 때문에 iv사용불가
this도 사용불가이다.
static 메서드에서 iv를 못쓰는 이유는
this가 객체 자신을 의미하는데 객체가 있을수도 있고, 없을수도 있으니까
iv의 진짜이름: 참조변수.자기이름 == this.a
this.a = a; 에서 this 생략하면 iv, lv 구분 어렵다.
this를 생략하면 iv가 아니라 lv가 된다.
long add()메서드의 return a + b;의 경우는 겹칠게 없어서 this 생략 가능
생성자하고 인스턴스 메서드에서 this 사용가능
static 메서드는 this 사용불가
'프로그래밍 언어 > 자바의 정석 기초편' 카테고리의 다른 글
자바의 정석 기초편 ch7-1,2 상속 (0) | 2022.08.16 |
---|---|
자바의 정석 기초편 ch6-38~41 변수의 초기화, 멤버변수의 초기화 (0) | 2022.08.03 |
자바의 정석 기초편 ch6-32~35 생성자, 기본 생성자 (0) | 2022.08.02 |
자바의 정석 기초편 ch6-30,31 오버로딩 (0) | 2022.08.02 |
자바의 정석 기초편 ch6-26~29 static메서드와 인스턴스 메서드 (0) | 2022.08.01 |