Java
[JAVA] This와 Shadowed field 이해하기
YEJI ⍢
2022. 12. 26. 17:13
728x90
This란?
This는 instance 변수임을 명시할 때 사용합니다.
Shadowed Fields의 개념도 같이 살펴보겠습니다.
Shadowed Fields
↓↓↓ 첫 번째 예제 ↓↓↓
public class p {
private String name;
private int age;
public void setName (String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge (int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
코드를 살펴보면 P class의 instance 변수로 name과 age가 선언된 것을 확인할 수 있습니다.
그리고 setter(setName, setAge)을 살펴보면 parameter로 Instance 변수와 동일한 이름의 변수 이름이 들어옵니다.
이때 instance member field를 shadowed field라고 합니다.
다른 경우도 살펴봅시다.
↓↓↓ 두 번째 예제 ↓↓↓
public class p {
private String name;
private int age;
private void person_info() {
String name;
int age;
}
}
instance 변수로 name과 age가 선언 되었고,
class 안에 존재하는 method에서도 name과 age과 선언되었습니다.
다른 field에서 선언된 두 변수의 이름이 같은 이러한 경우에도 shadowed field라고 합니다.
이러한 경우에 instance member를 부르고 싶을 때 첫 번째 예제처럼 this를 사용하게 됩니다.
사용은 아래와 같이 합니다.
public class p {
private String name;
private int age;
public void setName (String name) {
this.name = name;
}
public void setAge (int age) {
this.age = age;
}
}
this.name(or this.age)은 instance 변수이고, name(or age)은 parameter의 변수입니다.
◡̈