有一个代码:
class A {
int x = 12;
}
public class Program {
public static void main(String [] args) {
A a = new A();
int d = 10;
a.x = d;
System.out.println("a.x: " + a.x + ", d: " + d);
d = 52;
System.out.println("a.x: " + a.x + ", d: " + d);
}
}
输出为:
a.x: 10, d: 10
a.x: 10, d: 52
为什么a.x
没有改变吗?据我了解,在赋值过程中,左值引用右值,如果右值之后发生变化,则左值也必须改变。为什么没有发生?
最佳答案
这是因为您正在使用原语。复制的是值,而不是引用。
如果您要使用对象,那么它们将具有相同的引用并具有您期望的结果。
关于java - 类数据成员在赋值后不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37070347/