this
- 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다.
- 멤버변수와 지역변수의 이름이 같을 때 구별하기 위해 사용한다.
- 모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다.
this()
- 같은 클래스의 다른 생성자를 호출할 때 사용하는 생성자
- 생성자의 이름으로 클래스이름 대신 this를 사용
- 반드시 첫줄에서만 호출 가능
super
- 자손클래스에서 조상클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수
- (자손클래스의)상속받은 멤버와 자신의 멤버가 이름이 같을 때 사용
super()
- 조상의 생성자를 호출할 때 사용하는 생성자
- 조상의 멤버는 조상의 생성자를 호출해서 초기화
* 모든 생성자는 첫 줄에 반드시 다른 생성자를 호출해야한다.
그렇지 않으면 컴파일러가 첫 줄에 super();를 자동추가한다.
public class Ex7_4 {
public static void main(String[] args) {
Point3D p = new Point3D(1, 2, 3);
System.out.println("x=" + p.x + ",y=" + p.y + ",z=" + p.z);
}
}
class Point {
int x, y;
Point(int x, int y) {
this.x = x; // 생성자(this) 호출
this.y = y;
}
}
class Point3D extends Point {
int z;
Point3D(int x, int y, int z) {
super(x, y); // Point(int x, int y)를 호출
this.z = z;
}
/* Point3D(int x, int y, int z) {
super(); // 자동추가, Point()를 호출하지만 Point(){} 라는 기본생성자가 없어 컴파일러 에러 발생
this.x = x;
this.y = y;
this.z = z;
} */
}
출처:자바의정석 기초편(남궁성 저)
'Backend > Java' 카테고리의 다른 글
| 예외처리 개념 (0) | 2022.07.20 |
|---|---|
| 캡슐화와 접근제어자 (0) | 2022.07.12 |
| 오버라이딩과 오버로딩 (0) | 2022.07.11 |
| 클래스 메서드(static 메서드)란? (0) | 2022.07.07 |
| 반복되는 음수값이 있는 총합 구하기 (0) | 2022.06.29 |