1.方法的優(yōu)勢:實(shí)現(xiàn)代碼復(fù)用,減少了代碼重復(fù)。方便后期的維護(hù)。
2.方法:具備特定功能的一段獨(dú)立的代碼段。一個方法對應(yīng)一個功能。
方法聲明的語法:
訪問修飾符 [static/final/abstract]? 返回值類型 方法名(參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2……){
方法體
return 返回值;//作用返回方法執(zhí)行后的結(jié)果,結(jié)束方法
? }
方法調(diào)用的語法:方法名(參數(shù)名1,參數(shù)名2……);
訪問修飾符:public,private,(default),protected.
返回值類型: void+java支持的數(shù)據(jù)類型
方法名:駱駝式命名法
方法聲明時的參數(shù)(可以是0個到多個):在方法聲明時,這個地方的參數(shù)叫形參。形參的參數(shù)名前一定寫數(shù)據(jù)類型。
方法調(diào)用時的參數(shù):叫實(shí)參。實(shí)參不需要寫數(shù)據(jù),只需要傳值。實(shí)參傳遞的參數(shù)實(shí)際上是傳給形參。
return 返回值:方法的返回值類型是什么,咱們返回值就只能是這種類型。如果方法返回值類型為void時,就無須用return 返回值。
注:(1)方法不調(diào)用不執(zhí)行,調(diào)用才執(zhí)行。
(2)形參與實(shí)參的參數(shù)個數(shù)相同,形參與實(shí)參的參數(shù)對應(yīng)類型要相同,參數(shù)的位置也要匹配。
(3)如果方法有返回值,誰調(diào)用這個方法,返回值就返回給誰;
有返回值的方法在調(diào)用時,如果要用到返回值就要定一個變量接收方法的返回結(jié)果;
如果不用返回結(jié)果,在方法調(diào)用時就不需要接收返回結(jié)果。
(4)如果一個方法執(zhí)行時,需要調(diào)用才提供數(shù)據(jù)才能完成功能,就可以用有參方法;
如果一個方法執(zhí)行完,需要方法返回結(jié)果,就定成有返回值 。
(5)方法與方法是平級關(guān)系,不能嵌套定義。
? (6)方法間可以相互調(diào)用。
eg:
/**
*? 聲明一個無參無返回值的方法
*/
public static void shuaPin(){
System.out.println("刷屏");
}
/**
*? 聲明一個有參無返回值的方法
*/
public static void add(int a,int b){
int result=a+b;
System.out.println(result);
}
/**
* 聲明一個有參方法,有返回值
*/
public static int chen(int num1,int num2){
int result=num1*num2;
return result;
}
3.方法重載:(1)在同一個類 (2)方法名相同 (3)參數(shù)列表不同(參數(shù)的個數(shù)不同和類型不同)
使用場景:在同一個類,如果執(zhí)行相同的功能,只是參數(shù)不一樣,可以用方法重載。
方法重載與方法的訪問修飾符和返回值類型無關(guān)。
在調(diào)用時,虛擬機(jī)通過參數(shù)列表的不同來區(qū)分同名方法。
eg:public static int add(int num1,int num2){
System.out.println("兩個數(shù)的和");
int result=num1+num2;
return result;
}
public static int add(int num1,int num2,int num3){
System.out.println("三個數(shù)的和");
int result=num1+num2+num3;
return result;
}
4.遞歸:方法自身調(diào)用自身。
適用場景:(1)把一個問題拆分成多個子問題。
? (2)子問題的解決方式與問題本身的解決方式一樣
? (3)最終問題的解決依賴每個子問題的解決
? (4)最終問題一定要有出口。
eg:計(jì)算一個正整數(shù)num的階乘
public static long diGui(int num){//5
if(num==1){
return 1;
}else{
return num*diGui(num-1);//5*diGui(4)->5*4*diGui(3)->5*4*3*diGui(2)->5*4*3*2*1
}
}