這裏是我的代碼更改方法中對象的值會在全局範圍內更改它的值嗎?
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方法,在ternally對象A的價值已被改變,但爲什麼我看到這種功能以外的功能?
這不等於在C中傳遞值,除非您返回該變量/對象,否則不會獲取更新後的值。
即不要我需要做a=changeSomething(a);
並將此方法的返回類型設置爲A?
感謝
還有一個類似的問題就像那http://stackoverflow.com/questions/40480/is-java-pass-by-reference – swemon 2012-08-16 09:27:59