我不確定是否正確,但是我在我的類中創建了一個方法,在該方法中創建了一個用於保存數據的實例,這是因爲某些切換。然而,當我把它從什麼地方:在其方法中修改類的實例也會更改調用者變量
public static void otherClassMethod(MyClass myClass) {
MyClass m = myClass.doStuff(); // 1
}
public class MyClass {
private Item myItem;
private int mCount;
public void add(Item item) {
if (mCount == 0) {
myItem = item;
myItem.setNext(null); // 2
mCount++;
} else {
....
}
}
public MyClass doStuff() {
if (mCount == 0) return null;
MyClass m = new MyClass();
Item i = myItem;
do {
m.add(i); // 3
i = i.getNext(); // 4
} while (i != null);
return m;
}
}
在(4),它改變的變量(2)無論是從(3)和myClass的M(1),爲什麼(1)嗎? 我不知道我究竟得到了什麼,你能給我一個提示嗎? 謝謝。
要修改的同一_reference_一個對象每種方法指向內存中的相同位置。當你將它分配給另一個變量時,你沒有得到一個新的對象。 –