Java - 14 方法重载+可变参数
方法重载
Java允许同一个类中,多个同名方法存在,但要求形参列表不一致(类型,顺序),返回类型没有要求
public class Overload{
public static void main(String[] args) {
MyCalculator m = new MyCalculator();
System.out.println(m.calculate(1,2));
}
}
class MyCalculator {
public int calculate(int n1, int n2){
return n1+n2;
}
public double calculate(int n1, double n2){
return n1+n2;
}
public double calculate(double n1, int n2){
return n1+n2;
}
public double calculate(double n1, double n2){
return n1+n2;
}
}
可变参数
Java允许将同一个类中多个同名、同功能但参数个数不同的方法,封装成一个方法
- 可变参数本质是数组
public class VarParameters{
public static void main(String[] args) {
Methods m = new Methods();
System.out.println(m.sum(1,2,3));
}
}
class Methods{
// 接收 0-n 个 int类型参数
public int sum(int... nums){
int res = 0;
for(int i = 0; i<nums.length; i++){
res += nums[i];
}
return res;
}
}
- 可变参数可以是数组
public class Test{
public static void main(String[] args) {
Methods m = new Methods();
int[] arr = new int[3];
System.out.println(m.sum(arr)); // 0
}
}
class Methods{
public int sum(int... nums){
System.out.println("长度是:"+nums.length); // 3
int res = 0;
for(int i = 0; i<nums.length; i++){
res += nums[i];
}
return res;
}
}
- 可变参数和普通类型的参数一起时,必须保证可变参数在最后
- 一个形参列表中只能有一个可变参数