这是我的代码
Class A
public class A {
private int a;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
Class Change
public class Change {
public void changeSomething(A a){
a.setA(13);
}
}
Class Learn
public class Learn {
public static void main(String[] args) {
A a = new A();
Change change = new Change();
change.changeSomething(a);
System.out.println(a.getA());
}
}
输出为 13。现在,当我将对象传递给 changeSomething 方法时,对象 A 的值在内部已更改,但为什么我会在该函数之外看到这种效果?
这不等同于在 C 中按值传递,除非您返回该变量/对象,否则您不会获得更新的值。
即我不需要a=changeSomething(a);
将此方法的返回类型设置为A吗?
谢谢