java方法的介紹以及運用
阿新 • • 發佈:2021-07-21
方法
-
定義:類似於其他語言中的函式,是一段用來完成特定功能程式碼片段,方法包含一個方法頭和一個方法體。
-
一個方法中所有部分:
- 修飾符
- 返回值型別
- 方法名
- 引數型別:
- 形式引數:用來定義方法的引數
- 實際引數:用來實際呼叫傳遞的引數
- 方法體
-
方法的呼叫:
-
物件名.方法名(實參列表)
-
當方法返回是一個值時,方法呼叫常常被當做一個值
-
當方法返回的是void,方法呼叫一定是一條語句。
System.out.print("hello,man")
-
例子:比較輸入的兩個數字大小:
//比大小方法 public static int max(int num1,int num2){ int result = 0; if (num1==num2){ System.out.println("兩次輸入大小相同"); return 0; } if (num1>num2){ result = num1; }else { result = num2; } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入第一個數"); int num1 = scanner.nextInt(); System.out.println("請輸入第二個數"); int num2 = scanner.nextInt(); int max = max(num1,num2); System.out.println("最大的數為:"+max); }
-
-
方法的過載
-
過載就是在一個類中有相同的函式名稱,但是引數(形參不同)的引數。
-
方法過載規則
- 方法名稱必須相同
- 引數列表必須不同,如(個數、型別、引數排列順序不同)
- 方法的返回值型別可以相同也可以不同
- 僅僅返回型別不同不足以稱為方法的過載
-
實現理論:方法名稱相同時,編譯器通過呼叫方法的引數個數,引數型別等去逐個匹配,以選擇對應的方法,如果匹配失敗則編譯器報錯:
//比大小方法 public static int max(int num1,int num2){ int result = 0; if (num1==num2){ System.out.println("兩次輸入大小相同"); return 0; } if (num1>num2){ result = num1; }else { result = num2; } return result; } //引數型別不同 public static double max(double num1,double num2){ double result = 0; if (num1==num2){ System.out.println("兩次輸入大小相同"); return 0; } if (num1>num2){ result = num1; }else { result = num2; } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入第一個數"); int num1 = scanner.nextInt(); System.out.println("請輸入第二個數"); int num2 = scanner.nextInt(); int max = max(num1,num2); //double max = max(num1,num2);通過呼叫不同型別的引數,編譯器選擇相應的方法去執行 System.out.println("最大的數為:"+max); }
-
-
可變引數(不定項引數)
-
在指定引數型別後加上省略號(...)
-
一個方法中只能指定一個可變引數,且必須放在最末尾,其他任何引數必須在他之前宣告。
//比大小方法 public static void max( double... number) {//可變長引數 if (number.length == 0) { System.out.println("你沒有輸出任何數"); return; } double result = number[0]; //排序 for (int i = 0 ;i<number.length;i++){ if (number[i]>result){ result = number[i]; } } System.out.println("最大的數為:"+result); } public static void main(String[] args) { max(34,35,2,8,99);//呼叫引數時,引數個數可以任意設定,他的本質就是陣列 max(new double[]{1,5,2,4,9,}); }
-
-
遞迴:(方法呼叫自己本身)
-
例子:輸入一個數,輸出該數的階乘
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); System.out.println(f(i));//列印函式值 } public static int f(int i){ int resoult=0; if (i ==1){ resoult=1; }else { resoult= i*f(i-1);//遞迴,當條件滿足時繼續呼叫f方法。 } return resoult; }
-
一般不建議用遞迴,使用的前提是我們呼叫函式時的基數小,比如上面例子中的i當i較小的時候使用,如果較大會佔用大量的記憶體。
-