可变参数
概念:Java允许一个类中多个同名同功能但是参数不同的方法,封装为一个方法。
java
基本语法:
访问修饰符 返回值 方法名 (数据类型...参数名) {
......
}
案例:写一个类名DyMethod 方法名sum 计算两个整数和,三个整数和,四个整数和。
java
public class DyMethod {
public static void main(String[] args) {
DyMethod s1=new DyMethod();
s1.sum(1,2);
s1.sum(1,2,3);
s1.sum(1,2,3,4);
}
public int sum(int a,int b) {
return a+b;
}
public int sum(int a,int b,int c) {
return a+b+c;
}
public int sum(int a,int b,int c,int d) {
return a+b+c+d;
}
}
我们上面代码可以使用重载的方法来实现,但是这样的代码特别无聊,他们完成的功能都是大同小异,如果我们要求5个,6个,甚至更多呢,接下来我们用可变参数优化下。
java
public class DyMethod {
public static void main(String[] args) {
DyMethod s1 = new DyMethod();
s1.sum(1, 2);
s1.sum(1, 2, 3);
s1.sum(1, 2, 3, 4);
}
public int sum(int... x) {
int sum=0;
for (int i = 0; i < x.length; i++) {
sum+=x[i];
}
return sum;
}
}
//int...表示可接受可变参数,类型是int,可接受(0到n个int值)
//可变参数x可以当作数组来使用,即x当作数组
这样我们就利用参编参数简化了代码
可变参数注意到事项和细节
1.可变参数的实参可以是0到多个
2.可变参数可以传参数组
java
int [] arr={1,2,3,4,5};
System.out.println(s1.sum(arr));
public int sum(int... x) {
int sum=0;
for (int i = 0; i < x.length; i++) {
sum+=x[i];
}
return sum;
}
3.可变参数实质是数组
4.可变参数可以跟其他普通类型参数一起出现,但是可变参数必须在参数最后
java
public int sum(int a,Stuent... x)
5.一个方法里面只能有一个可变参数
java
public int sum(int...a,Stuent... x)//报错
练习:有三个方法,返回姓名+2门成绩和,返回姓名+3门成绩和,返回姓名+4门成绩和,封装成一个方法。
java
public String sum(String name,int...score) {
int sum=0;
for (int i = 0; i < score.length; i++) {
sum+=score[i];
}
return "姓名"+name+"成绩"+sum;
}