K-DigitalTraining 강의/1. Java
[2주차] 38. 'this' 멤버변수 이름과 매개변수 이름이 같을 때 사용해야 하는 것
이대곤
2022. 5. 24. 12:47
* 멤버변수 이름과 매개변수 이름이 같다면, 멤버변수는 객체의 멤버변수임을 this를 통해 명시해줘야 한다.
그렇지 않으면 우선순위에 의해서 두 이름 모두 같은 멤버변수로 인식해
null로 초기화 되어 있는 변수에 다시 자신을 넣는 것이라 또다시 null이 대입되어 아래와 같은 결과가 나오는 것이다.
내가 예상했던 결과가 나오지 않는 코드
class Product {
private String name;
void setName(String name) {
name = name; // 문제가 되는 부분
}
String getName() {
return name;
}
}
public class Ex05_13_setter_getter {
public static void main(String[] args) {
Product p1 = new Product();
p1.setName("새우깡");
System.out.println(p1.getName());
}
}
null
내가 예상했던 결과가 나오는 코드
class Product {
private String name;
void setName(String name) {
this.name = name;
}
String getName() {
return name;
}
}
public class Ex05_13_setter_getter {
public static void main(String[] args) {
Product p1 = new Product();
p1.setName("새우깡");
System.out.println(p1.getName());
}
}
새우깡