当我们定义一个方法时,有时候不知道确定几个参数时,那么我们就需要用到可变参数,可变参数就是可以接收不确定多个参数的值。
我们看下语法格式:
修饰符 返回值类型 方法名称(参数类型... 参数){ …… 方法体 …… return 返回值; }
我们看到可变参数 是用参数类型加省略号…表示,如下
int...num double...num
需要注意的是:
1.一个方法最多只有1个可变参数;
2.必须是方法的最后一个参数,也就是说方法中可以除了可变参数外,还可以在可变参数前 有其他的参数,如下
public static int add(int count, int...num)
示例:
我们要统计几个学生的成绩总和,但是有可能每次是5个,也有可能是8个,那么我们就需要用的可变参数,我们看下这个方法如何写?
public static int add(int...score){ int sum = 0; for (int i = 0; i < score.length; i++) { sum += score[i]; } return sum; }
可变参数的本质就是一个数组,我们可以通过下标来操作。
public class Demo04 { public static void main(String[] args) { //可变参数 int sum = add(50,80,90,30,70); System.out.println(sum); } public static int add(int...score){ int sum = 0; for (int i = 0; i < score.length; i++) { sum += score[i]; } return sum; } }
我们看到,传递是50,80,90,30,70 这5个数字,相当于方法调用时的5个形参(int a, int b,int c,int d, int e ),那么结果为
我们把参数换成其他,再看下结果:
public class Demo04 { public static void main(String[] args) { //可变参数 int sum = add(50,80,90,30,70,80,99,100,77); System.out.println(sum); } public static int add(int...score){ int sum = 0; for (int i = 0; i < score.length; i++) { sum += score[i]; } return sum; } }
输出结果:
因此,对于不定项的参数,可以使用这种可变参数来灵活处理。