본문 바로가기
프로그래밍/JAVA

자바의 정석 기초 ( 참조변수 super / 생성자 super() )

by ✲ 2020. 7. 10.
반응형

남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 

 

참조변수 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

 

반응형

댓글