java - swap函數(shù)
問題描述
在下面代碼中,并沒有達(dá)到交換兩個對象的效果輸出結(jié)果是3:4按理來說,java中不都是引用嗎,應(yīng)該可以直接交換對象啊!請解釋一下我的錯誤,并給出解決辦法。我希望輸出結(jié)果為4:3class 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);}
}
問題解答
回答1:在Java世界中函數(shù)或者叫方法的入?yún)⒍际峭ㄟ^值拷貝的方式進(jìn)行傳遞:
原始類型(char,int,double等)都是通過直接拷貝變量值傳參;對象類型都是通過引用拷貝(跟C++中引用不同)傳參,通過該引用能夠更改其指向的對象內(nèi)部值,但是更改該引用值,僅對函數(shù)內(nèi)部可見,函數(shù)外部的實參依然沒有改變;
正常來說,java不能實現(xiàn)。并且int對象內(nèi)部private final int value;是final的
相關(guān)文章:
1. javascript - jquery怎么讓a標(biāo)簽跳轉(zhuǎn)后保持tab的樣式2. javascript - vue中怎么使用原生js插件3. php多任務(wù)倒計時求助4. javascript - 小demo:請教怎么做出類似于水滴不斷擴(kuò)張的效果?5. javascript - 請問下面代碼中的...是擴(kuò)展運算符還是操作運算符?這樣寫是什么意思?6. css - autoprefixer沒有添加web-kit前綴7. css - 如何把一個視圖放在左浮動定位的視圖的上面?8. javascript - JS變量被清空9. python的正則怎么同時匹配兩個不同結(jié)果?10. javascript - axios請求回來的數(shù)據(jù)組件無法進(jìn)行綁定渲染
