1、举个例子:要求出0~多个数且数类型相同的和
2、重载的解决办法:
class T{ //求一个数的和 public int sum(int n1) { return n1; } //求两个数的和 public int sum(int n1,int n2) { return n1+n2; } //求多个数的和 //... }
但是不太好,异常演出可变参数
3、可变参数
看个例子:
package test; public class Test { public static void main(String[] args) { T t=new T(); System.out.println(t.sum(1,5,7)); } } class T{ //可变参数 //int... 代表接受的是可变参数(0~多) //num 可以当作数组来用 public int sum(int... num) { int sum=0; for(int i=0;i<num.length;i++) { sum+=num[i]; } return sum; } }
在某些情况下非常的好用~
4、可变参数的细节
解释一下第二点:
int[][] arr={1,5,7};
T t=new T();
t.sum(arr);//等价于t.sum(1,5,7);
解释一下第四点:
class T{
public double sum(int a,double... num){//形参列表只能可变参数在最后
}
}