一、可变参数
Java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法,通过可变参数实现。
案例演示:
public class VarParameter01 {
public static void main(String[] args) {
HspMethod m = new HspMethod();
System.out.println("和=" + m.sum(20, 1, 50));
}
}
class HspMethod {
//可以计算2个数的和 3个数的和 4..个
//使用可变参数
//int...表示接收的是可变参数,类型是int,即可以接收多个int
//使用可变参数时,可以当作数组来使用 即nums可以当作数组
public int sum(int...nums) {
int res = 0;
for(int i = 0; i < nums.length; i++) {
res += nums[i];
}
return res;
}
}
二、注意事项和使用细节
1、可变参数的实参可以是0个或者任意多个
2、可变参数的实参可以是数组
3、可变参数的本质就是数组
4、可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
5、一个形参列表中只能出现一个可变参数
三、入门练习
有三个方法,分别实现返回姓名和两门课成绩(总分),返回姓名和三门课成绩(总分),返回姓名和五门课成绩(总分)。封装成一个可变参数的方法。
public class VarParameterExercise {
public static void main(String[] args) {
HspMethod m = new HspMethod();
System.out.println(m.showScore("张三", 22.2, 60.1));
System.out.println(m.showScore("李四", 22.2, 60.1, 100.5));
System.out.println(m.showScore("铁蛋", 22.2, 60.1, 100.5, 40.9, 50.7));
}
}
class HspMethod {
public String showScore(String name, double...nums) {
double res = 0;
for(int i = 0; i < nums.length; i++) {
res += nums[i];
}
return name + nums.length + "门课的成绩=" + res;
}
}