可变形参 Day07

package com.sxt.kebianxingcan;
/*
 * 可变形参
 * 声明:数据类型...标识符
 * 作用:将实参作为数组处理
 * 规则:一个方法只能有一个可变形参并且作为最后一个形参
 *         
 */
public class Test1 {
    public static void main(String[] args) {
        double sum = add(3.14,2,3,4,5,6,7);
        System.out.println(sum);
        System.out.println("--------------------");
        int[]arr1 = {1,2,3,4};
        int[]arr2 = {2,3,4,5,6};
        int sum1 = add(arr1,arr2);
        System.out.println(sum1);
    }
//      不采用可变形参
//    private static int add(int[] arr1, int[] arr2) {
//        int sum = 0;
//        int sum1 = 0;
//        for(int num: arr1){
//            sum += num;
//        }
//        for(int num1: arr1){
//            sum1 += num1;
//        }
//        return sum+sum1;
//    }
    //采用数组类型的可变形参
    private static int add(int[]...a){//将实参作为一个数组处理  原来是一维 现在是二维
//        System.out.println(a[0][0]);//第一个数组的第一个元素
        int sum = 0;
        for(int[] arr: a){
            for(int num: arr){
                sum += num;
            }
        }
        return sum;
    }
//    不采用可变形参的方式    缺点:对于不同的形参类型都要写对应的方法  形参个数太多
//    private static int add(int i, int j, int k, int l, int m, int n, int o) {
//        return i+j+k+l+m+n+o;
//    }
    //采用可变形参的方式
    private static double add(double d,int...a){//可变形参:将实参作为数组处理
        int sum = 0;
        for(int num: a){
            sum += num;
        }
        return sum+d;
    }
}

 

posted @ 2017-04-22 15:30  清风追梦enjoy  阅读(121)  评论(0编辑  收藏  举报