남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
참조변수 super (this와 거의 비슷)
- 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자) 내에만 존재
- 조상의 멤버를 자신의 멤버와 구별할 때 사용
- 자식 클래스에서 상속받은 부모 클래스의 멤버변수를 참조할 때 사용
super() - 조상의 생성자
- 조상의 생성자를 호출할 때 사용
- 조상의 멤버는 조상의 생성자를 호출해서 초기화
class Point {
int x, y;
Point(int x, int y) {
this.x = x;
this.y = y; // iv 초기화
}
}
class Point3D extends Point{
int z;
Point3D (int x, int y, int z) {
this.x = x;
this.y = y; // 조상의 멤버를 초기화
this.z = z;
}
}
//조상의 멤버를 자손에서 초기화 X
Point3D(int x, int y, int z){
super(x,y); // 조상클래스 생성자 Point(int x, int y)를 호출
this.z = z; // 자신의 멤버를 초기화
}
super() - 조상의 생성자
- 생성자의 첫 줄에는 반드시 생성자를 호출해야 한다
그렇지 않으면 컴파일러가 생성자의 첫 줄에 super();를 삽입
class Point{
int x;
int y;
Point(){
this(0,0); //자기자신 생성자 호출
}
Point(int x, int y){
this.x = x; //생성자 호출 아니기 때문에 컴파일러가 super();를 넣음
this.y = y;
}
}
super, super() 공부할 때 this , this() 참고용
'프로그래밍 > JAVA' 카테고리의 다른 글
자바의 정석 기초 ( 제어자 / 접근 제어자 / public / protected / default / private ) (0) | 2020.07.12 |
---|---|
자바의 정석 기초 ( 패키지 / 패키지 선언 / 클래스 패스 / import문 / static import문 ) (0) | 2020.07.10 |
자바의 정석 기초 ( 단일상속 / Object 클래스 / 오버라이딩 / 오버로딩 ) (0) | 2020.07.10 |
자바의 정석 기초 ( 상속 (Inheritance) / 포함 (composite) ) (0) | 2020.07.10 |
자바의 정석 기초 ( 생성자 this() / 참조변수 this / 변수의 초기화 / 초기화 순서 ) (0) | 2020.07.09 |
댓글