Discuss / Java / 随便说几句

随便说几句

Topic source

永夜闲阶

#1 Created at ... [Delete] [Delete and Lock User]

第二种情况,成员变量是字符串数组,给这个成员变量赋值。那这个成员变量就指向一个数组,这个数组的元素发生变化时,这个成员变量指向的数组的值就发生了变化。

第二种情况,成员变量是字符串,给这个成员变量赋值,那么这个成员变量就指向一个字符串“Bob”。局部变量bob突然指向了“Alice”,也就是此时类成员变量和局部变量指向的是不同的字符串。

所以说第二个数组字符串是内容变了,第三个字符串是内容没变,指向变了

第一种,外部变量的引用和类成员的引用都没有变化,只是引用的值的指向变化了。

第二种,外部变量的引用变化了,类成员的引用没有变化。

Person p = new Person();
String[] fullname = new String[] { "Homer", "Simpson" };
p.setName(fullname); // 传入fullname数组
System.out.println(p.getName()); // "Homer Simpson"
fullname = new String[] {"Bart", "Simpson"};
System.out.println(p.getName());  // 还是 "Homer Simpson"

其实把第一种改成如上,不就好理解了么...


  • 1

Reply