程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 淺談Java中的可變參數

淺談Java中的可變參數

編輯:關於JAVA

淺談Java中的可變參數。本站提示廣大學習愛好者:(淺談Java中的可變參數)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談Java中的可變參數正文


可變參數

可變參數就是一個辦法可以吸收隨意率性多個參數!例如:fun()、fun(1)、fun(1,1)、fun(1,1,1)。你能夠以為這是辦法重載,但這不是重載,你想一想重載能重載若干個辦法,而fun()辦法是可以傳遞任何個數的參數,你能重載這麼多個辦法麼?

2.1 界說可變參數辦法

public voidfun(int… arr) {}

下面辦法fun()的參數類型為int…,個中“…”不是省略號,而是界說參數類型的方法。參數arr就是可變參數類型。你可以把下面代碼懂得為: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;
  }

你能夠會想,“int[]”和“int…”沒有甚麼分歧,只是“int…”是一種新的界說數組形參的方法而已。那末我應當祝賀你了!沒錯,這麼懂得就對了!但要留意,只要在辦法的形參中可使用int…來取代int[]。

2.2 挪用帶有可變參數的辦法

sum1()和sum2()兩個辦法的挪用:

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

這看起來沒甚麼差別!然則關於sum2還有另外一種挪用方法:

sum2();

sum2(1);

sum2(1,2);

sum2(1,2,3);

這看起來似乎是應用隨意率性多個參數來挪用sum2()辦法,這就是挪用帶有可變參數辦法的利益了。

2.3 編譯器“二次加工”

編譯器對sum2辦法界說的“二次加工”成果為:

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

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

編譯器對sum2辦法挪用的二次加載成果為:

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

結論:可變參數其實就是數組類型,只不外在挪用辦法時便利一些,由編譯器幫我們把多個實參放到一個數組中傳遞給形參。

2.4 可變參數辦法的限制

l  一個辦法最多只能有一個可變參數;

l  可變參數必需是辦法的最初一個參數。

以上就是小編為年夜家帶來的淺談Java中的可變參數的全體內容了,願望對年夜家有所贊助,多多支撐~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved