黑马程序员技术交流社区
标题:
对象数组的理解
[打印本页]
作者:
873350610
时间:
2015-11-15 21:28
标题:
对象数组的理解
代码中为什么第一次输出name属性是改变后的,第二次没有改变呢
public class Main {
public static void main(String[] args){
Person p = new Person("lisi",21); //创建一个对象
Person[] p1 = {new Person("zs",20),p};//创建一个对象数组
Person[] p2 = p1;
p2[1].setName("ww");//对第二个元素的name属性进行传参操作
System.out.println(p.getName());//第一次输出对象p中的name属性
p2[1] = new Person("xxx",25);
System.out.println(p.getName());//第二次输出对象p中的name属性
}
}
class Person{
private String name;
private int age;
public static int count;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
}
作者:
873350610
时间:
2015-11-30 11:28
新人秒沉的节奏
作者:
Good_Man
时间:
2015-11-30 13:22
嗯,写的不错啊,加油
作者:
洋葱头头
时间:
2015-11-30 15:37
Good_Man 发表于 2015-11-30 13:22
嗯,写的不错啊,加油
就看见你天天水了
作者:
873350610
时间:
2015-11-30 17:50
洋葱头头 发表于 2015-11-30 15:37
就看见你天天水了
版主大大,你的头像跟这句话绝配啊
作者:
Ansel_young
时间:
2015-11-30 19:34
感觉第二个new person改变了堆内存中P1[2]和P2[2]的指向,而p的指向没有发生变化,第一次改变了p中name的指向,不道这样说对不对
作者:
杨洛神
时间:
2015-11-30 22:01
嗯,写的不错啊,加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2