希望通過博客和大家相互交流,相互學習,如有錯誤,請評論區指正
目錄
一、什么是方法
注意
二、方法的呼叫
上代碼
注意
三、方法的簽名與多載(overload)
方法的簽名
方法的多載
錯誤示范

一、什么是方法
方法就相當于C語言當中的函式,負責完成某項特定任務,相較于其他代碼,具有相對的獨立性
我們通過如下代碼來體驗一下 Java 當中的方法
public static int max(int x, int y) {
return x > y ? x : y;
}
這就是一個簡單的方法,來求兩個整型中的較大值
在這段代碼中,int 是這個方法的回傳值型別,max 為方法名,后面括號中為引數串列
注意
- 方法定義時每個引數都要指明型別(方法可以沒有引數)
- 方法的引數串列中的引數為形參,呼叫方法時傳的引數為實參,形參相當于實參的一份臨時拷貝
- 方法必須要定義在類中
- 呼叫方法會在堆疊中開辟空間
二、方法的呼叫
上代碼
public static int max(int x, int y) {
return x > y ? x : y;
}
public static void main(String[] args) {
int ret2 = max(1, 2);
}
在上面的這段代碼中,我們定義了一個max方法,并通過main函式來呼叫
在呼叫時,傳入引數 1 和 2,相當于分別給形參 x 和 y 賦值,然后在max方法中實作求最大值的邏輯,再將最大值回傳,在main函式中用ret2來接識訓傳值
注意
- 方法只有被呼叫的時候才會被執行,否則不執行相關邏輯
- 方法可以沒有回傳值,用void
三、方法的簽名與多載(overload)
在C語言中我們通過函式名來區分各種不同的函式,但在 Java 中,通過方法的簽名來區分

方法的簽名
方法的簽名包含以下兩部分:
- 方法名
- 引數串列(引數的型別和數量)
由于 Java 中是通過方法名和引數串列來區分方法,所以才使得Java中可以支持方法的多載
方法的多載
如果同一個類中包含了兩個或兩個以上方法名相同的方法,但形參串列不同,這種情況被稱為方法多載(overload)(回傳值型別不做要求)
同一個方法名提供不同版本的實作
在很多情況下我們都需要一個函式可以同時兼容多種情況,這就用到了方法的多載,如下代碼
public static int max(int x, int y) {
return x > y ? x : y;
}
public static float max(float x, float y) {
return x > y ? x : y;
}
public static void main(String[] args) {
int ret = max(1, 2);
float ret2 = max(1.5f, 2.3f);
}
可以看到,在上面這段代碼中,我們需要通過max方法來獲取不同型別資料中的最大值,在C語言中我們就需要重新換個函式名去定義函式(繁多的方法名降低代碼可讀性),但在Java中就不需要那么麻煩了,不管是float型別還是int型別求最大值,核心邏輯都一樣,我們通過方法多載就可以避免繁多的方法名
在呼叫方法時,會根據方法的引數串列來確定要呼叫哪一個方法
錯誤示范
public static int max(int x, int y) {
return x > y ? x : y;
}
public static float max(int x, int y) {
return x > y ? x : y;
}
要注意方法多載和回傳值型別無關,所以這樣會編譯出錯
歡迎大家關注!!!
一起學習交流 !!!
讓我們將編程進行到底!!!
--------------整理不易,請三連支持------------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/404013.html
標籤:其他
