引用類型與引用傳遞(Java中如何實(shí)現(xiàn)類似于C#中的out類型參數(shù)的效果)

說(shuō)個(gè)簡(jiǎn)單就能實(shí)現(xiàn)的結(jié)果吧…

使用數(shù)組等對(duì)象是可以達(dá)到類似c#中out類型的效果的

BUT

并非只要傳遞的數(shù)據(jù)是引用類型就是引用傳遞

補(bǔ)點(diǎn)概念

值傳遞

是指在調(diào)用函數(shù)時(shí),將實(shí)際參數(shù)復(fù)制一份傳遞給函數(shù),這樣在函數(shù)中修改參數(shù)時(shí),不會(huì)影響到實(shí)際參數(shù)。

引用傳遞

是指在調(diào)用函數(shù)時(shí),將實(shí)際參數(shù)的地址傳遞給函數(shù),這樣在函數(shù)中對(duì)參數(shù)的修改,將影響到實(shí)際參數(shù)。

注意!

一般來(lái)講,只有修改的值是與傳進(jìn)來(lái)的參數(shù)的地址相同的參數(shù)的值才是引用傳遞,而只有采用引用傳遞的類型的數(shù)據(jù)才能達(dá)到和c#中out修飾類型同樣的效果。


舉個(gè)例子應(yīng)該就明白了

示例

代碼

public static void main(String[] args) {
        String[] strArr={"張三"};
        System.out.println(strArr[0]);
        changeValue(strArr);
        System.out.println(strArr[0]);
        System.out.println("=========================");
        System.out.println(strArr[0]);
        changeValue2(strArr);
        System.out.println(strArr[0]);

    }

    private static void changeValue2(String[] strArr) {
        String[] strArr2={"李四"};
        strArr[0]=strArr2[0];
    }

    private static void changeValue(String[] strArr) {
        String[] strArr2={"李四"};
        strArr=strArr2;
    }

輸出結(jié)果

張三
張三
=========================
張三
李四
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容