方法
-
概念
方法就是完成特定功能的代碼塊
- 格式
修飾符 傳回值類型 方法名(參數類型 參數名1,參數類型 參數名2 ....){
方法體;
return 傳回值;
}

-
注意事項
A:方法不調用不執行
B:方法與方法是平級關系,不能嵌套定義
C:方法定義的時候參數之間用逗号隔開
D:方法調用的時候不用在傳遞參數類型
E:如果方法由明确的傳回值,一定要由return帶回一個值
-
方法的練習
在寫一個方法之前,要先明确兩個東西,一個是傳回值類型,也就是明确功能結果的資料類型,一個是參數清單,也就是你需要傳遞幾個參數,以及每一個參數的資料類型。接下來,我們通過實際例子認識一下如何編寫一個方法
練習一:求兩個資料之和
package org.westos.demo;
public class MethodDemo {
public static void main(String[] args) {
int result = method(10,20);//調用方法
System.out.println(result);
}
public static int method(int a,int b){//傳入兩個int類型參數
int result = a + b;
return result;
}
}
運作代碼得到:
練習二:擷取兩個數的最大值
package org.westos.demo;
public class MethodDemo {
public static void main(String[] args) {
int result = method(10,20);//調用方法
System.out.println(result);
}
public static int method(int a,int b){//傳入兩個int類型參數
int result = a > b ? a : b;
return result;
}
}
得到結果:
-
方法重載
在同一個類中,允許存在一個以上的同名方法,隻要它們的參數清單不同,與傳回值無關
參數清單不同:(1)參數個數不同 (2)參數類型不同
//求2-3個整數之和
public static int method(int a,int b){//傳入兩個int類型參數
int result = a + b;
return result;
}
public static double method(int a,double b){//傳入一個int類型參數,一個double類型參數
double result = a + b;
return result;
}
public static int method(int a,int b,int c){//傳入三個個int類型參數
int result = a + b + c;
return result;
}
以上三個方法就屬于方法重載,根據調用方法時傳入的參數不同,選擇對應的方法調用
遞歸
-
概念
方法定義中調用方法本身
-
注意事項
(1)方法中要有出口,否則容易造成死遞歸
(2)次數不能太多,否則會導緻記憶體溢出
-
遞歸的練習
運用遞歸的思想就是将一個大問題分成多個小問題,依次解決,還可以在小問題裡面再細分幾個問題。這樣,解決起來就簡單了,最終完成大問題的解決。舉個例子:求5的階乘
我們先用遞歸的思想畫個簡單的示意圖:
再将這個思想用代碼實作:方法和遞歸方法遞歸
package org.westos.demo;
public class DiGui {
public static void main(String[] args) {
int result = digui(5);
System.out.println(result);
}
public static int digui(int n){
if(n == 1){
return 1;
}else{
return n * digui(n - 1);//展現遞歸思想,方法中調用方法
}
}
}
運作得到的結果:
這就是運用遞歸的思想解決問題,當然,直接代碼編寫也可以實作,但有時候會過于繁瑣,根據需求适當使用遞歸方法可以快速且友善的解決問題