【发布时间】:2014-11-29 06:26:39
【问题描述】:
Dog.setName("Kutta"); // this is how you call a setter method
String Naam = Dog.getName();
System.println(Naam); //Kutta
Naam = "Kutte ki Ma";
System.println(Dog.getName()); // Is this *Kutte ki Ma* or is it *Kutta*?
为什么?如果 Java 按值传递引用,Naam 不应该指向 Dog.getName() 吗?如果是这样的话,如果Naam被修改,Dog对象的Name变量(可能是这里使用的类的私有变量)不应该直接修改吗?这不是缺陷吗?
【问题讨论】:
-
Dog.getName() = "Kutta";会编译吗? -
您需要先发布编译的代码,然后才能讨论执行时行为...请发布一个简短但完整的程序来演示该问题。
-
@hrishirc 看看这个帖子:stackoverflow.com/questions/40480/… 特别注意第二好的答案,它详细解释了你需要知道的一切。
-
也改变 Dog.setName() = "Kutta"; to Dog.setName("Kutta");
-
这只狗的名字叫“狗”?多么有创意:-(
标签: java pointers reference pass-by-value