7-1 如何定義 Java 中的方法
所謂方法,就是用來解決一類問題的代碼的有序組合,是一個功能模塊。
一般情況下,定義一個方法的語法是:
其中:
1.訪問修飾符:方法允許被訪問的權限范圍,可以是 public、protected、private甚至可以省略,其中 public 表示該方法可以被其他任何代碼調用,其他幾種修飾符的使用在後面章節中會詳細講解。
2.返回值類型:方法返回值的類型,如果方法不返回任何值,則返回值類型指定為 void;如果方法具有返回值,則需要指定返回值的類型,並且在方法體重使用 return 語句返回值。
3.方法名:定義的方法的名字,必須使用合法的標識符。
4.參數列表:傳遞給方法的參數列表,參數可以有多個,多個參數間以逗號隔開,每個參數由參數類型和參數名組成,以空格隔開,根據方法是否帶參、是否帶返回值,可將方法分為四類:
?無參無返回值方法
?無參帶返回值方法
?帶參無返回值方法
?帶參帶返回值方法
7-2 Java 中無參無返回值方法的使用
如果方法不包含參數,且沒有返回值,我們稱為無參無返回值的方法。
方法的使用分兩步:
第一步,定義方法
例如:下面代碼定義了一個方法名為 show ,沒有參數,且沒有返回值的方法,執行的操作為輸出 “ welcome to imooc. ”
注意哦:
1、 方法體放在一對大括號中,實現特定的操作
2、 方法名主要在調用這個方法時使用,需要注意命名的規范,一般采用第一個單詞首字母小寫,其它單詞首字母大寫的形式
第二部,調用方法
當需要調用方法執行某個操作時,可以先創建類的對象,然後通過對象名.方法名(); 來實現。
例如:在下面的代碼中,我們創建了一個名為hello的對象,然後通過調用該對象的 show()方法輸出信息。
7-2 Java 中無參帶返回值方法的使用
如果方法不包含參數,但有返回值,我們稱為無參帶返回值的方法。
例如:下面的代碼,定義了一個方法名為 calSum ,無參數,但返回值為 int 類型的方法,執行的操作為計算兩數之和,並返回結果
在 calSum( ) 方法中,返回值類型為 int 類型,因此在方法體中必須使用 return 返回一個整數值。
調用帶返回值的方法時需要注意,由於方法執行後會返回一個結果,因此在調用帶返回值方法時一般都會接收其返回值並進行處理。如:
運行結果為:兩數之和為:17
不容忽視的“小陷阱”:
1、 如果方法的返回類型為 void ,則方法中不能使用 return 返回值!
2、 方法的返回值最多只能有一個,不能返回多個值
3、 方法返回值的類型必須兼容,例如,如果返回值類型為 int ,則不能返回 String 型值
7-3 Java 中帶參無返回值方法的使用
有時方法的執行需要依賴於某些條件,換句話說,要想通過方法完成特定的功能,需要為其提供額外的信息才行。例如,現實生活中電飯鍋可以實現“煮飯”的功能,但前提是我們必須提供食材,如果我們什麼都不提供,那就真是的“巧婦難為無米之炊”了。我們可以通過在方法中加入參數列表接收外部傳入的數據信息,參數可以是任意的基本類型數據或引用類型數據。
我們先來看一個帶參數,但沒有返回值的方法:
上面的代碼定義了一個 show 方法,帶有一個參數 name ,實現輸出歡迎消息。
調用帶參方法與調用無參方法的語法類似,但在調用時必須傳入實際的參數值
例如:
運行結果為:歡迎您,愛慕課!
很多時候,我們把定義方法時的參數稱為形參,目的是用來定義方法需要傳入的參數的個數和類型;把調用方法時的參數稱為實參,是傳遞給方法真正被處理的值。
一定不可忽視的問題:
1、 調用帶參方法時,必須保證實參的數量、類型、順序與形參一一對應
2、 調用方法時,實參不需要指定數據類型,如
3、 方法的參數可以是基本數據類型,如 int、double 等,也可以是引用數據類型,如 String、數組等
4、 當方法參數有多個時,多個參數間以逗號分隔
7-3 Java 中帶參帶返回值方法的使用
如果方法既包含參數,又帶有返回值,我們稱為帶參帶返回值的方法。
例如:下面的代碼,定義了一個 show 方法,帶有一個參數 name ,方法執行後返回一個 String 類型的結果
調用帶參帶返回值的方法:
運行結果為:歡迎您,愛慕課!
7-4 Java 中方法的重載
問: 什麼是方法的重載呢?
答: 如果同一個類中包含了兩個或兩個以上方法名相同、方法參數的個數、順序或類型不同的方法,則稱為方法的重載,也可稱該方法被重載了。如下所示 4 個方法名稱都為 show ,但方法的參數有所不同,因此都屬於方法的重載:
問: 如何區分調用的是哪個重載方法呢?
答: 當調用被重載的方法時, Java 會根據參數的個數和類型來判斷應該調用哪個重載方法,參數完全匹配的方法將被執行。如:
運行結果:
判斷方法重載的依據:
1、 必須是在同一個類中
2、 方法名相同
3、 方法參數的個數、順序或類型不同
4、 與方法的修飾符或返回值沒有關系