자바에서 많이 사용되는 것 중에서 this와 super가 포함된다.

 

우선 this 와 this() 그리고 super 와 super()는 비슷한 맥락이지만 쓰임새는 다르다.

 

 

this.

  • 현재 클래스의 인스턴스를 의미 ( 현재 클래스의 멤버변수를 지정할 때 사용)

this().

  • 현재 클래스에서 정의된 생성자를 부를 때 사용

 

사용 예제. 

this 의 사용 예제.

this의 경우 위의 화면과 같이 현재 클래스(Battery)의 클래스 변수 rechargeable와 동일한 이름의 파라미터 (setRechargeable 메서드) 가 들어올 경우, 명확히 구분해 줄 수 있다.

 

 

this()의 사용 예제

this()는 위와 같이 Battery의 생성자가 2개 있을 경우, 생성자 값이 들어오지 않을 경우 this()메서드를 사용하여 두번째 생성자를 불러 초기화 할 수 있다.

 


 

super.

  • 자식 클래스에서 상속받은 부모 클래스의 멤버변수를 참조할 때 사용

super().

  • 자식 클래스가 자신을 생성할 때 부모 클래스의 생성자를 불러 초기화하여 사용됨. (기본적으로 자식 클래스의 생성자에 추가된다.)

 

사용예제.

super의 사용 예제
super()의 사용 예제

super()의 사용예제 소스에서 Disc객체 생성 시 [ Disc disc = new Disc() ] 호출 순서

  1. Disc() 생성자 호출
  2. this()에 의하여 Disc(int, String) 생성자 호출
  3. super()에 의하여 Battery(boolean, String) 생성자 호출
  4. Disc 객체 생성 완료

 

설명이 많이 미흡하지만 개떡같이 말해도 찰떡같이 이해해주길 바란다.......

+ Recent posts