java學習筆記--基礎篇06(方法的過載、可變引數、遞迴)
阿新 • • 發佈:2021-01-20
4、方法的過載
-
在同一個類中,有相同方法名,但形參不同的方法
-
方法過載規則:
1)方法名必須相同
2)引數列表必須不同(個數或型別或排列順序不同)
3)返回值型別可相同,可不同
4)僅返回值型別不同不足以成為方法的過載
-
實現理論:方法名稱相同時,編譯器會根據呼叫方法引數情況去逐一匹配,以選擇對應的方法,匹配失敗,編譯器報錯
5、可變引數
-
在方法宣告中,在指定引數型別後加一個省略號(...)
-
1 package method; 2 3 public class Demo01 { 4 publicstatic void main(String[] args) { 5 printMax(); 6 printMax(1,2,3,4,5,6,9999); 7 8 } 9 public static void printMax(double... numbers){ 10 if (numbers.length==0){ 11 System.out.println("沒有引數"); 12 return; 13 } 14 double result = numbers[0]; 15 for (int i =1;i<numbers.length;i++){ 16 if (numbers[i]>result){ 17 result = numbers[i]; 18 } 19 } 20 System.out.println(result); 21 } 22 }
6、遞迴
-
遞迴就是A方法呼叫A方法,自己呼叫自己
-
它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。遞迴的能力在於用有限的
-
遞迴結構包括兩個部分
-
遞迴頭:什麼時候不呼叫自身。沒有頭,將進入死迴圈。
-
遞迴體:什麼時候呼叫自身。
1 package method; 2 3 public class Demo02 { 4 public static void main(String[] args) { 5 System.out.println(f(10)); 6 7 } 8 public static int f(int n){ 9 if (n==1){ 10 return 1; 11 }else { 12 return n*f(n-1); 13 } 14 } 15 }
遞迴能不用就不用,深度太大容易宕機
-