프로그래밍언어/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 객체 생성 완료!
실행결과
모두 즐거운 코딩하세요~
반응형