在下面程式碼中,並沒有達到交換兩個物件的效果
輸出結果是3:4
照理來說,java中不都是引用嗎,應該可以直接交換物件啊!
請解釋一下我的錯誤,並給出解決辦法。
我希望輸出結果為4:3
class Int
{
public int x;
}
public class Hello {
void swap(Int a,Int b)
{
Int t=a;
a=b;
b=t;
}
public static void main(String[] args) {
Hello hello=new Hello();
Int a=new Int();
Int b=new Int();
a.x=3;
b.x=4;
hello.swap(a,b);
System.out.println(a.x+":"+b.x);
}
}
在Java世界中函數或叫方法的入參都是透過值拷貝的方式進行傳遞:
正常來說,java不能實作。
且int物件內部
private final int value;
是final的