- 前言
- 基本概念
- 基本语法
- 入门案例
- 注意事项和使用细节
前言
这里面涉及到方法的重载的概念,如果不清楚的话,可以点击下面链接看看
方法的重载和重写
基本概念
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;
}
}
注意事项和使用细节
下面我们来判断一下,下面的代码能不能写在同一个类中
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);
}
}
我们可以看出这样其实是不行的,可变参数本质是数组,但是上面的第一个方法的参数是数组,两个方法的方法名相同,参数列表也一样,不构成重载,很明显,它们是同名方法,所以不能出现在同一个类中