개발_웹/Java

Java | this, super / this(), super()

zuyo 2019. 5. 9. 03:37
반응형

1. this

현재 객체의 주소(레퍼런스). 현재 객체 내의 멤버에 접근한다.


2. super

현재 객체의 슈퍼 클래스 영역의 주소. 슈퍼클래스의 멤버에 접근한다.
오버라이딩 된 메소드는 동적 바인딩되어 서브클래스의 메소드를 호출하므로, 슈퍼클래스의 메소드를 호출하려면 super 키워드를 사용해야 한다.

오버라이딩 시, 기존 부모클래스의 메소드 기능은 유지하되 기능을 추가하고 싶을 때 사용

func() {
    super.func(); // 부모 메소드의 기능 유지
    // 자식만의 코드
}

3. this()

- 생성자에서 동일한 클래스 내의 다른 생성자를 호출 시 사용.
- 생성자 코드에서만 사용 가능하며, 생성자 코드의 첫 번째 문장에 쓰여야 함

public class Memo {
	String title;
	Date date;

	public Memo(String title, Date date) {
		this.title = title;
		this.date = date;
	}

	public Memo() {
		this("noname", null);
	}
}

 

반응형