可变参数

可变参数

可变参数:指的是方法将来调用时,可以传入若干个指定类型的参数

注意:

1、一个方法定义中只能有一个可变参数

2、可变参数必须在参数列表中的最后一个定义

这是有限的值的情况

package com.shujia.day13;

public class KeBianCanShuDemo1 {
    public static void main(String[] args) {
        //需求1:定义一个方法,求两个int类型的和
        System.out.println(sum(1,2));
        //需求2:定义一个方法,求两个int类型的和
        System.out.println(sum(1,2,3));

    }
    public static int sum(int a,int b){
        return a+b;
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }

}

当有很多个的时候就不能用上面的方法了,得使用可变参数和循环进行求和

package com.shujia.day13;

public class KeBianCanShuDemo1 {
    public static void main(String[] args) {
        //需求1:定义一个方法,求两个int类型的和
        System.out.println(sum(1,2));
        //需求2:定义一个方法,求两个int类型的和
        System.out.println(sum(1,2,3));
        //求多个int的和
        System.out.println(sum(1,2,3,4,1,2,123,1,21,1));
    }
    public static int sum(int a,int b){
        return a+b;
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
    //将来传入若干个int类型的值,JVM将其封装到一个数组中,这个数组名字叫arr
    public static int sum(int...arr){
        int sumNum=0;
        for (int i:arr){
            sumNum+=i;
        }//这时候得用增强for循环遍历数组进行求和
        return sumNum;
    }
}

下方图片中的红框的 ... 可以接收任意数量int类型的值

image-20240307214210826

但是当输入的不再完全是int类型的时候,情况就不一样了

package com.shujia.day13;
import java.util.Arrays;
import java.util.List;

public class KeBianCanShuDemo1 {
    public static void main(String[] args) {
        //需求1:定义一个方法,求两个int类型的和
        System.out.println(sum(1,2));
        //需求2:定义一个方法,求两个int类型的和
        System.out.println(sum(1,2,3));
        //需求3:定义一个方法,求多个int的和
        System.out.println(sum(1,2,3,4,1,2,123,1,21,1));
        //需求4:有一个学生,姓名是字符串类型叫做"小花",考了三门试:98,99,60
        //求该学生的总成绩,姓名:xxx, 总分:xxx
        System.out.println(sumScore("小花", 98, 99, 60));

        
        
        //Arrays工具类中的一个方法
        //public static <T> List<T> asList(T... a)
        List<String> list = Arrays.asList("java", "hadoop", "hive"); // 底层实际上是创建一个ArrayList集合


    }
    public static int sum(int a,int b){
        return a+b;
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
    //将来传入若干个int类型的值,JVM将其封装到一个数组中,这个数组名字叫arr
    public static int sum(int...arr){
        int sumNum=0;
        for (int i:arr){
            sumNum+=i;
        }//这时候得用增强for循环遍历数组进行求和
        return sumNum;
    }

    public static String sumScore(String name,int...score){
        int sumScore=0;
        for (int i:score){
            sumScore+=i;
        }//这时候得用增强for循环遍历数组进行求和
        return "姓名:"+name+", 总分:"+sumScore;
    }
}

注意!!

这里的可变参数一定放在最后,若是以后遇到有多种值的,可变参数一定是放在最后面的

posted @ 2024-03-07 22:27  peculiar-  阅读(4)  评论(0编辑  收藏  举报