Java - 14 方法過載

wajiez發表於2024-10-06

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

相關文章