Fall in IT.

자바에서 this와 super란? 본문

프로그래밍언어/Java

자바에서 this와 super란?

D.Y 2016. 8. 8. 23:58

안녕하세요.


오늘은 자바에서 많이 사용되는 this와 super에 대해서 알아보겠습니다.

this와 this() 그리고, super와 super()는 맥락은 같지만 조금씩 쓰임새는 다른데요, 이에 대해 알아보도록 하겠습니다.


this란?

  • 현재 클래스의 인스턴스를 의미합니다.
  • 즉, 현재 클래스의 멤버변수를 지정할때 사용합니다.
this 사용예제
  • 아래와 같이 현재 클래스(ParentClass)의 클래스 변수 mother와 동일한 이름의 파라미터(setMother 메소드)가 들어올 경우, 명확히 구분해 줄 수 있습니다.



this()란?
  • 현재 클래스에 정의된 생성자를 부를때 사용됩니다.


this() 사용예제

  • 아래와 같이 ParentClass의 생성자가 2개 있을 경우, 생성자 값이 들어오지 않을 경우 this()메소드를 사용하여 두번째 생성자를 불러 초기화 할 수 있습니다.



super란?

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


super 사용예제



super()란?

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


super() 사용예제

  • ChildClass객체 생성시(ChildClass child = new ChildClass) 호출 순서 
    - ChildClass() 생성자 호출
    - this()에 의하여, ChildClass(String, String) 생성자 호출
    - super()에 의하여, ParentClass(String, String) 생성자 호출
    - ChildClass 객체 생성 완료!


실행결과



모두 즐거운 코딩하세요~



Comments