我们先来看以下案例:
class Person{
public String name;
public int age;
public Person() { //空参构造
}
public Person(String name, int age) { //有参构造
this.name = name;
this.age = age;
}
}
public class test1 {
public static void main(String[] args) {
Person p = new Person("张三",23);
System.out.println(p.name+"..."+p.age); //输出 张三...23
Person p1=p; //将p的地址值付给p1
p1.name="李四"; //修改p1的name属性为李四
System.out.println(p.name+"..."+p.age); //输出 李四...23
}
}
首先我们知道:
- 对于引用引用数据类型,赋值的是地址值
因为Person p1 = p;p将地址值赋给p1,当p1把所指对象中的name属性改为"李四"时,p在访问所指对象时当然会发生改变.