[Java] this 와 super
자바 this 와 super
this?
this를 사용 하여 클래스 내에 맴버 변수나 메소드를 가리킬 수 있다.
다음 예를 보자
package sample; public class human { protected int age; private String name; private String job;
public void setHumanInfo( int age, String name, String job) { this.age = age; this.name = name; this.job = job; } } |
클래스의 맴버 변수 명이 age 인데 setHumanInfo 함수 인자 값 역시 age 이다.
둘다 age 값인데 어떤게 맴버 변수이고 어떤게 인자인지 구분할 길이 없다.
이럴때 쓰이는 것이 this 인데 this를 쓰면 클래스의 맴버 변수를 가리킨다.
또한 this는 맴버 함수도 가리킬 수 있다.
super?
super를 사용 하여 상위(부모)클래스 내에 맴버 변수나 메소드를 가리킬 수 있다.
이때 상위 클래스의 접근 범위가 public 이나 protected로 되어 있어야 접근이 가능하다.
위에 human 클래스에 age는 protected로 접근 범위가 설정 되어있다.
다음은 human 클래스를 상속한 korean 클래스의 예제이다.
package sample; public class korean extends human { int age;
public void setAge(int age){ super.age = 1; this.age = 2;
System.out.println("super.age : " + super.age ); System.out.println("this.age : " + this.age ); System.out.println("age : " + age ); } } |
[결과]
super.age : 1 this.age : 2 age : 10 |
korean 클래스는 human을 상속 했기 때문에
super.age는 human의 맴버 변수
this.age는 korean의 맴버 변수
이로써 this, super에 대한 사용방법에 대해 알아봤습니다.
궁금한 점 있으면 댓글 달아주시면 답변 드리겠습니다.
도움이 되셨나요?