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의 변수입니다.

 

 

 

◡̈