본문 바로가기
Language/Java

자바 this, super 차이 알아보기

by wakestand 2019. 10. 11.
반응형

자바의 this부터 먼저 알아보자면 왼쪽 스크린샷에서 

클래스 영역의 변수 value는 10으로 주고

ThisSuperTest 를 객체화하면서 파라미터에는 1을 넣어 줬는데

 

생성자에서 이 1을 value로 받아 사용하기에

실제 value를 호출해보면 클래스 영역에 정의한 10이 호출되는 것이 아니라

파라미터로 넣은 1이 호출이 된다

 

이제 우측의 스크린샷을 보면 동일한 이름의 value 변수여도

this. 를 붙여주면 클래스 영역에 정의한 value 변수를 호출해서

10이 호출되는 것이 보인다

 

즉 this.는 동일한 이름의 변수가 사용될 경우

클래스 영역에서 정의한 변수를 식별하기 위해 사용한다는 것!

 

다음으로는 super인데

super는 상속받은 메소드나 변수를 호출할 때 사용한다

 

보면 ThisSuperTest에도 call 메소드와 name 변수가 있지만

super. 를 붙이고 메소드와 변수를 호출 시

상속받은 Parent의 call 메소드와 name 변수가 호출되는 것이 보인다

 

간단히 정리해보자면

 

this란? 

클래스 영역에서 정의한 변수와

동일한 이름의 변수가 사용되는 경우

this. 를 붙여 클래스 영역에 정의한 변수를 사용할 수 있다

 

super란?

이미 클래스 내에 동일한 이름의 메소드, 변수가 있어도

super. 을 붙여 상속받은 클래스의 메소드, 변수를 사용할 수 있다

반응형

댓글