在java中實現(xiàn)C#語法里的按引用傳遞參數(shù)的方法
在C#中,在次函數(shù)中調(diào)用時改變了其中的數(shù)值,主函數(shù)中也將發(fā)生改變
ref 關(guān)鍵字使參數(shù)按引用傳遞。其效果是,當(dāng)控制權(quán)傳遞回調(diào)用方法時,在方法中對參數(shù)所做的任何更改都將反映在該變量中。若要使用 ref 參數(shù),則方法定義和調(diào)用方法都必須顯式使用 ref 關(guān)鍵字
out 關(guān)鍵字會導(dǎo)致參數(shù)通過引用來傳遞。這與 ref 關(guān)鍵字類似,不同之處在于 ref 要求變量必須在傳遞之前進行初始化。若要使用 out 參數(shù),方法定義和調(diào)用方法都必須顯式使用 out 關(guān)鍵字。
Java里面不像C#那樣,Java只有對象類型參數(shù)才是傳地址的,Java的基礎(chǔ)類型變量做參數(shù)的時候,都只是傳值。
解決方法是,用Java的類做函數(shù)的參數(shù)類型。
如下是我寫的一個例子說明:
文件名:byRefVariable.java
//--------------------------------------
public class byRefVariable{
public static void main(String args[]) {
obj test=new obj();
System.out.println("沒有把test作實參傳遞給changeIt方法之前的test.var的值="+test.var);
changeIt(test);//坐實參傳遞到一個函數(shù)!
System.out.println("test作實參傳遞給changeIt之后"+test.var);
}
public static void changeIt(obj a) {
a.var=12580;
}
}
class obj //我在這里定義了一個類。
{ int var=0;}
以上就是小編為大家?guī)淼脑趈ava中實現(xiàn)C#語法里的按引用傳遞參數(shù)的方法的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~
相關(guān)文章
java?Long類型轉(zhuǎn)為json后數(shù)據(jù)損失精度的處理方式
這篇文章主要介紹了java?Long類型轉(zhuǎn)為json后數(shù)據(jù)損失精度的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringBoot實現(xiàn)對超大文件進行異步壓縮下載的使用示例
在Web應(yīng)用中,文件下載功能是一個常見的需求,本文介紹了SpringBoot實現(xiàn)對超大文件進行異步壓縮下載的使用示例,具有一定的參考價值,感興趣的可以了解一下,2023-09-09
基于Properties實現(xiàn)配置數(shù)據(jù)庫驅(qū)動
這篇文章主要介紹了基于Properties實現(xiàn)配置數(shù)據(jù)庫驅(qū)動,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05

