我一直在閱讀很多關於這個的文章,所有的回答都傾向於反駁它之前的答案,他們都似乎是高排名的人,所以我很困惑,只是想知道這是否工作:java:傳遞一個對象
public class Object{
private int someNumber = 5;
public void setSomeNumber(int newNumber){someNumber = newNumber;}
}
public class Main {
Object myObject = new Object();
public static void main(String[] args){
changeNumber(myObject);
}
void changeNumber(Object obj)
{
obj.setSomeNumber(10);
}
}
這會改變myObject.someNumber爲10?
我的理解是,obj指向與myObject相同的內存位置,因此調用其使用obj的方法與使用myObject調用它相同,因爲obj不僅僅是myObject的副本?
我認爲這是很清楚,我,直到我開始閱讀主題在這裏它笑
編輯:謝謝你糾正碼,我只是寫出來在這裏作爲一個例子,沒有看到錯誤
謝謝你們。另外我被人們稱爲按價值傳遞困惑,所以我不能確定它是否通過了記憶中的地址,或者不是,因爲對我來說這是通過一個參考,所以它變得不清楚。
是的,你是對的。什麼令你困惑? –
你可以糾正你的錯誤,並嘗試運行它。 ('myObject'需要使用'main'或者'static','changeNumber'需要''static'''對象'對於一個類來說是個非常糟糕的名字,除了jlo以外,用'System.err。 println(myObject.getSomeNumber());'。) –
所有的「java是通過值而不是通過引用」在很多帖子中來回讓我發誓。 –