아래 코드는 제 코드입니다. 개체를 null로 설정했지만 여전히 내 print 문은 name
속성을 올바르게 인쇄 할 수 있습니다. 아무도 무슨 일이 일어나는지 말해 줄 수 있니?null 객체가 그 속성 값을 반환 할 수있는 방법은 무엇입니까?
public class MyClass {
String name;
public String getName() {
return name;
}
public void setName(String s) {
name = s;
}
public static void main(String args[]) {
MyClass obj = new MyClass();
obj.changeName(obj);
System.out.println("Name = " + obj.getName());
}
public MyClass() {
name = "A";
}
public void changeName(MyClass obj) {
obj.setName("B");
obj = null;
}
}
출력된다 :
NAME = B
값이 값을 매개 변수로 메서드에 전달 된 변수. – EJP
그러면 어떻게 obj.SetName이 로컬 변수 대신 원래 객체의 속성으로 설정됩니까? – Sunil
@Sunil 지역 변수'obj'는 원래 객체에 대한 참조를 가지고 있으므로 obj.setName ("B")'는 this.setName ("B")'와 같습니다. – Eran