1.可变参数
基本概念
Java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。就可以通过可变参数实现
基本语法
访问修饰符 返回类型 方法名(数据类型... 形参名) {
}
快速入门
public class VarParameter01 {
public static void main(String[] args) {
logicMethods methods = new logicMethods();
methods.sum(1, 100, 67);
}
}
//计算2,3,4...个数的和
class logicMethods {
// public int sum(int n1, int n2) {
// return n1 + n2;
// }
// public int sum(int n1, int n2, int n3) {
// return n1 + n2 + n3;
// }
// public int sum(int n1, int n2, int n3, int n4) {
// return n1 + n2 + n3 + n4;
// }
//上面三个方法名称相同,功能相同 参数个数不同 使用可变参数优化
//1.int... 表示接受的是可变参数,类型是int,即可以接受多个int(0-多)
//2.使用可变参数时,可以当作数组来使用 即nums可以当作数组
//3.遍历nums求和即可
public int sum(int... nums) {
int res = 0;
for (int i = 0; i < nums.length; i++) {
res += nums[i];
}
System.out.println("res = " + res);
return res;
}
}
注意事项及使用细节
- 可变参数的实参可以为0个或任意多个
- 可变参数的实参可以为数组
- 可变参数的本质就是数组
- 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
- 一个形参列表中只能出现一个可变参数
可变参数练习
//用三个方法 分别实现返回姓名和两门课成绩的总分
//返回姓名和三门课成绩的总分 返回姓名和五门成绩的总分
public class VarParameterExercise01 {
public static void main(String[] args) {
LogicMethod method = new LogicMethod();
System.out.println(method.showScore("logic", 120, 110, 123, 89, 88, 90));
}
}
class LogicMethod {
public String showScore(String name, double... nums) {
double sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
}
return name + "有" + nums.length + "门课程 成绩是: " + sum;
}
}