大家来看,这个程序会是什么结果?
首先:
public class Person {
public String name;
public String age;
public String address;
public String getAge() {
return age;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setAge(String age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
然后:
public class Test3 {
public static void main(String[] args) {
Person person = new Person();
person.setName( "小胡同志 ");
person.setAge( "23 ");
person.setAddress( "中国北京 ");
Person person2 = new Person();
person2 = person;
person.setAddress( "美国洛杉矶 ");
System.out.println(person2.getAddress());
}
}
如果运行一下结果会是: 美国洛杉矶
问题:person2 是新new的一个对象,为什么person的属性的改变会影响到person2 ?
------解决方案--------------------person2 = person;之后,
这两个东西就同一个地址了,所以会变