JAVA の基本 -- 変数パラメータ

変数パラメータ

JDK1.5以降、複数のパラメーターを受け入れる必要があるメソッドを定義し、複数のパラメーターが同じ型である場合、それを次の形式に簡略化できます。

修饰符 返回值类型 方法名(参数类型... 形参名){  }

実際、この書き込みは次と完全に同等です。

修饰符 返回值类型 方法名(参数类型[] 形参名){  }

後者の定義は呼び出し時に配列を渡す必要があるのに対し、前者はデータを直接渡すことができるというだけです。

JDK1.5以降。簡素化が行われました。...可変引数パラメーターと呼ばれるパラメーターで使用されます。

これは配列も表しますが、可変パラメータを指定してこのメ​​ソッドを呼び出す場合、配列を作成する必要はなく (これが単純さです)、配列内の要素は実際のパラメータとして直接渡されます。実際、コンパイルされたクラス ファイルは、これらの要素は、まず配列にカプセル化されてから渡されます。これらのアクションは、.class ファイルのコンパイル時に自動的に完了します。

コードデモ:

public class ChangeArgs {
    
    
    public static void main(String[] args) {
    
    
        int[] arr = {
    
     1, 4, 62, 431, 2 };
        int sum = getSum(arr);
        System.out.println(sum);
        //  6  7  2 12 2121
        // 求 这几个元素和 6  7  2 12 2121
        int sum2 = getSum(6, 7, 2, 12, 2121);
        System.out.println(sum2);
    }

    /*
     * 完成数组  所有元素的求和 原始写法
     
      public static int getSum(int[] arr){
        int sum = 0;
        for(int a : arr){
            sum += a;
        }
        
        return sum;
      }
    */
    //可变参数写法
    public static int getSum(int... arr) {
    
    
        int sum = 0;
        for (int a : arr) {
    
    
            sum += a;
        }
        return sum;
    }
}

ヒント: 同じクラス内に存在できるのは、上記の add メソッドのうち 1 つだけです。呼び出しの非決定性のため

注: メソッドを作成するときにメソッドに複数のパラメータがあり、そのパラメータに可変パラメータが含まれる場合、可変パラメータはパラメータ リストの最後に書き込む必要があります。

おすすめ

転載: blog.csdn.net/qq_44660367/article/details/108107222