目錄
一、什么是方法
二、方法的定義
三、實參和形參的關系
四、方法重載
五、方法簽名
一、什么是方法
Java中的方法可以理解為C語言中的函數,只是換了個名稱而已。
二、方法的定義
1. 語法格式:
public static 返回類型 方法名 (形參列表) {
? ? ? ? //方法體...
? ? ? ? return 返回值;
}
2. public static也可以省略,后面會詳細講解這個是什么,但在現階段我們默認加上即可。
/*示例:定義一個能實現兩個整型相加的方法*/public static int add(int x, int y) {return x + y;}public static void main(String[] args) {Scanner scan = new Scanner(System.in);int x = scan.nextInt();int y = scan.nextInt();int ret = add(x, y);//調用方法System.out.println(ret);}
3. 關于return與C語言不同的地方,如果返回類型是同類不同種,且return后面數值類型的大小,小于方法返回類型,這樣寫是可以的,并不會報錯。
4. Java中的方法名必須采用小駝峰的方式命名,比如,maxNum。
5. 關于方法的聲明,與C語言不同的是,Java中的方法,并不強調聲明的“位置”,也就是說,方法的聲明可以放在被調用前,也可以放在被調用后,不過習慣上會寫在被調用前。
6. 在Java中,方法必須寫在類中,方法和C語言一樣,不能嵌套定義。
三、實參和形參的關系
和C語言一樣,形參是實參的一份臨時拷貝,改變形參不會影響實參。
四、方法重載
1. 問:Java中為什么會出現方法重載?
答:例如,當我們想要實現兩個整型變量相加,兩個浮點型類型變量相加,三個浮點型變量相加等,由于參數的個數和類別有區別,于是我們要分別定義這個類型的方法,對于取名和記憶方法的名稱本身是一件很令人頭疼的事,但我們可以發現上面方法有一個共同的特點,本質都是實現數值之間的加法,于是引入了方法重載的概念,在一個類中,有相同的方法名,但形參列表不同幾個方法,稱這幾種方法被重載了。
2. 方法重載的規則:
? ? ① 方法名稱必須相同
? ? ② 參數列表必須不同(個數不同,或類型不同,參數排列順序不同)
? ? ③ 方法的返回值類型可以相同也可以不相同
? ? ④ 僅僅返回值類型不同不足以稱為方法重載3. 如下圖所示,我們定義了幾個方法名相同,但形參列表不同的add方法,在mian方法中調用add方法時可以發現會彈出一個選項框,我們可以根據方法的參數列表,選擇要使用哪一種add方法。(編譯器在編譯代碼時,會對實參類型進行推演,根據推演的結果來確定調用哪個方法)
五、方法簽名
1. 在同一個作用域中不能定義兩個相同名稱的標識符,比如:方法中不能定義兩個名字一樣的變量,那為什么類中可以定義方法名相同的方法呢?這是由于相同名稱的方法它們的方法簽名不同的緣故。
2. 方法簽名即:經過編譯器編譯修改過之后方法最終的名字,具體方式:方法全路徑名+參數列表+返回值類型,構成方法完整的名字。
3. 我們可以查看上圖中java代碼的的反匯編代碼,看到不同add方法的方法簽名,具體:
? ? ① 先對工程進行編譯生成.class字節碼文件
?? ?② 在控制臺中進入到要查看的.class所在的目錄
?? ?③ 輸入:javap -v 字節碼文件名字
如下圖所示,紅色框起來的即為三個add方法最終的名稱。
???本篇文章已完結,謝謝支持喲 ^^ !!!