• ​​前言​​
  • ​​基本概念​​
  • ​​基本语法​​
  • ​​入门案例​​
  • ​​注意事项和使用细节​​

前言

这里面涉及到方法的重载的概念,如果不清楚的话,可以点击下面链接看看

​​ 方法的重载和重写​​

基本概念

java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法, 就可以通过可变参数实现。


基本语法

访问修饰符 返回类型 方法名(数据类型… 形参名) {

}


入门案例

假设现在有一个需求,需要我们完成一个功能,它可以计算2个数的和,3个数的和,4,5……

我们可以看出来参数个数不确定。

分析:如果不用可变参数的话,我们就得写很多的同名方法

下面是一个入门小案例:

public class VarParameter01 {

//编写一个 main 方法
public static void main(String[] args) {

HspMethod m = new HspMethod();
System.out.println(m.sum(1, 5, 100)); //106
System.out.println(m.sum(1, 19)); //20
}
}

class HspMethod {

public int sum(int... nums) {
//System.out.println("接收的参数个数=" + nums.length);
int res = 0;
for(int i = 0; i < nums.length; i++) {

res += nums[i];

}
return res;
}

}

注意事项和使用细节


Java的可变参数_i++

下面我们来判断一下,下面的代码能不能写在同一个类中

public void print(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i);
}
}
public void print(int...arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i);
}
}

我们可以看出这样其实是不行的,可变参数本质是数组,但是上面的第一个方法的参数是数组,两个方法的方法名相同,参数列表也一样,不构成重载,很明显,它们是同名方法,所以不能出现在同一个类中