자바의 정석 기초 ( 참조변수 super / 생성자 super() )
남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
참조변수 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() 참고용
자바의 정석 기초 ( 생성자 this() / 참조변수 this / 변수의 초기화 / 초기화 순서 )
남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 생성자 this() - 생성자에서 다른 생성자 호출할 때 사용 - 다른 생성자 호출시 첫 줄에서만 사용 가능 참
yunjungblog.tistory.com