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;
}
}
- 可變引數和普通型別的引數一起時,必須保證可變引數在最後
- 一個形參列表中只能有一個可變引數