変数パラメーター
変数パラメーターは、任意の数のパラメーターを受信できる方法です!例: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 []の代わりにint ...のみを使用できることに注意してください。
2.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コンパイラ「セカンダリ処理」
Compilerの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メソッドへのコンパイラの呼び出しの2次荷重結果は次のとおりです。
sum2(new int [0]); sum2(new int [] {1}); sum2(new int [] {1、2}); sum2(new int [] {1、2、3});結論:変数パラメーターは実際には配列タイプですが、メソッドを呼び出すときはより便利です。コンパイラは、複数の実際のパラメーターを配列に配置し、それらを正式なパラメーターに渡すのに役立ちます。
2.4変数パラメーターメソッドの制限
lメソッドは、せいぜい1つの可変パラメーターのみを持つことができます。
l変数パラメーターは、メソッドの最後のパラメーターでなければなりません。
上記は、編集者からもたらされたJavaの可変パラメーターの簡単な説明の完全な内容です。私はそれがすべての人に役立ち、wulin.comをもっとサポートすることを願っています〜