文章詳情頁
java - swap函數
瀏覽:112日期:2023-12-04 13:25:47
問題描述
在下面代碼中,并沒有達到交換兩個對象的效果輸出結果是3:4按理來說,java中不都是引用嗎,應該可以直接交換對象啊!請解釋一下我的錯誤,并給出解決辦法。我希望輸出結果為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世界中函數或者叫方法的入參都是通過值拷貝的方式進行傳遞:
原始類型(char,int,double等)都是通過直接拷貝變量值傳參;對象類型都是通過引用拷貝(跟C++中引用不同)傳參,通過該引用能夠更改其指向的對象內部值,但是更改該引用值,僅對函數內部可見,函數外部的實參依然沒有改變;
正常來說,java不能實現。并且int對象內部private final int value;是final的
標簽:
java
相關文章:
1. macos - mac下docker如何設置代理2. redis與mysql一致性問題3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. css - 求推薦適用于vue2的框架 像bootstrap這種類型的5. android - coordinatorLayout嵌套recyclerview6. Laravel5.4電商實戰視頻教程資料7. 想練支付寶對接和微信支付對接開發(Java),好像個人不可以,怎么弄個企業的8. Mac環境下QT編譯MySQL驅動屢次失???如何?9. javascript - 微信支付:H5調起支付API,直接說支付失敗10. javascript - [多圖預警]reactjs點擊某表格編輯內容,跳轉傳值this.context.router.params.id時id報錯未定義
排行榜
