国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

淺談Java中的可變參數(shù)

2019-11-26 13:45:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

可變參數(shù)

可變參數(shù)就是一個(gè)方法可以接收任意多個(gè)參數(shù)!例如:fun()、fun(1)、fun(1,1)、fun(1,1,1)。你可能認(rèn)為這是方法重載,但這不是重載,你想想重載能重載多少個(gè)方法,而fun()方法是可以傳遞任何個(gè)數(shù)的參數(shù),你能重載這么多個(gè)方法么?

2.1 定義可變參數(shù)方法

public voidfun(int… arr) {}

上面方法fun()的參數(shù)類型為int…,其中“…”不是省略號(hào),而是定義參數(shù)類型的方式。參數(shù)arr就是可變參數(shù)類型。你可以把上面代碼理解為:public void fun(int[] arr)。

public int sum1(int[] arr) {    int sum = 0;    for(int i = 0; i < arr.length; i++) {      sum += arr[i];    }    return sum;  }public int sum2(int... arr) {    int sum = 0;    for(int i = 0; i < arr.length; i++) {      sum += arr[i];    }    return sum;  }

你可能會(huì)想,“int[]”和“int…”沒(méi)有什么不同,只是“int…”是一種新的定義數(shù)組形參的方式罷了。那么我應(yīng)該恭喜你了!沒(méi)錯(cuò),這么理解就對(duì)了!但要注意,只有在方法的形參中可以使用int…來(lái)代替int[]。

2.2 調(diào)用帶有可變參數(shù)的方法

sum1()和sum2()兩個(gè)方法的調(diào)用:

sum1(new int[]{1,2,3});sum2(new int[]{1,2,3});

這看起來(lái)沒(méi)什么區(qū)別!但是對(duì)于sum2還有另一種調(diào)用方式:

sum2();sum2(1);sum2(1,2);sum2(1,2,3);

這看起來(lái)好像是使用任意多個(gè)參數(shù)來(lái)調(diào)用sum2()方法,這就是調(diào)用帶有可變參數(shù)方法的好處了。

2.3 編譯器“二次加工”

編譯器對(duì)sum2方法定義的“二次加工”結(jié)果為:

public int sum2(int[] arr) {    int sum = 0;    for(int i = 0; i < arr.length; i++) {      sum += arr[i];    }    return sum;  }

即把“int…”修改為“int[]”類型。

編譯器對(duì)sum2方法調(diào)用的二次加載結(jié)果為:

sum2(new int[0]);sum2(new int[] {1});sum2(new int[] {1, 2});sum2(new int[] {1, 2, 3});

結(jié)論:可變參數(shù)其實(shí)就是數(shù)組類型,只不過(guò)在調(diào)用方法時(shí)方便一些,由編譯器幫我們把多個(gè)實(shí)參放到一個(gè)數(shù)組中傳遞給形參。

2.4 可變參數(shù)方法的限制

l  一個(gè)方法最多只能有一個(gè)可變參數(shù);

l  可變參數(shù)必須是方法的最后一個(gè)參數(shù)。

以上就是小編為大家?guī)?lái)的淺談Java中的可變參數(shù)的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持武林網(wǎng)~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 柳江县| 辽阳市| 萨嘎县| 新营市| 渝中区| 霍州市| 崇州市| 都匀市| 绩溪县| 榆林市| 芜湖市| 凤山县| 天水市| 台南市| 连南| 阿坝| 黄龙县| 蒲城县| 水富县| 额敏县| 威信县| 大竹县| 曲阳县| 万全县| 会东县| 商都县| 崇州市| 嘉黎县| 务川| 准格尔旗| 绍兴县| 通城县| 兴义市| 綦江县| 兴国县| 佛山市| 富阳市| 荣成市| 江陵县| 尖扎县| 舒兰市|