자바에서 많이 사용되는 것 중에서 this와 super가 포함된다.
우선 this 와 this() 그리고 super 와 super()는 비슷한 맥락이지만 쓰임새는 다르다.
this.
- 현재 클래스의 인스턴스를 의미 ( 현재 클래스의 멤버변수를 지정할 때 사용)
this().
- 현재 클래스에서 정의된 생성자를 부를 때 사용
사용 예제.
this의 경우 위의 화면과 같이 현재 클래스(Battery)의 클래스 변수 rechargeable와 동일한 이름의 파라미터 (setRechargeable 메서드) 가 들어올 경우, 명확히 구분해 줄 수 있다.
this()는 위와 같이 Battery의 생성자가 2개 있을 경우, 생성자 값이 들어오지 않을 경우 this()메서드를 사용하여 두번째 생성자를 불러 초기화 할 수 있다.
super.
- 자식 클래스에서 상속받은 부모 클래스의 멤버변수를 참조할 때 사용
super().
- 자식 클래스가 자신을 생성할 때 부모 클래스의 생성자를 불러 초기화하여 사용됨. (기본적으로 자식 클래스의 생성자에 추가된다.)
사용예제.
super()의 사용예제 소스에서 Disc객체 생성 시 [ Disc disc = new Disc() ] 호출 순서
- Disc() 생성자 호출
- this()에 의하여 Disc(int, String) 생성자 호출
- super()에 의하여 Battery(boolean, String) 생성자 호출
- Disc 객체 생성 완료
설명이 많이 미흡하지만 개떡같이 말해도 찰떡같이 이해해주길 바란다.......
'Backend > JAVA' 카테고리의 다른 글
[JAVA] Functional Interface (함수형 인터페이스) (0) | 2022.05.03 |
---|---|
[JAVA] Lambda Expression(람다 표현식) (0) | 2022.01.27 |
[JAVA] JAVA 8 의 주요 변경사항 (0) | 2022.01.27 |
[JAVA] lombok 롬복이란? (0) | 2022.01.22 |
[JAVA] 생성자(Constructor) (0) | 2022.01.19 |