日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

1.7 方法重载

發布時間:2025/3/20 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.7 方法重载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 允許同一個類中定義多個同名方法,只要它們的形參列表不同即可。如果同一個類中包含了兩個或兩個以上方法名相同的方法,但形參列表不同,這種情況被稱為方法重載(overload)。

例如,在 JDK 的 java.io.PrintStream 中定義了十多個同名的 println() 方法。

public void println(int i){} public void println(double d){} public void println(String s){}

這些方法完成的功能類似,都是格式化輸出。根據參數的不同來區分它們,以進行不同的格式化處理和輸出。它們之間就構成了方法的重載。實際調用時,根據實參的類型來決定調用哪一個方法。例如:

System.out.println(102); // 調用println(int i)方法 System.out.println(102.25); // 調用println(double d)方法 System.out.println("價格為 102.25"); // 調用println(String s)方法

方法重載的要求是兩同一不同:同一個類中方法名相同,參數列表不同。至于方法的其他部分,如方法返回值類型、修飾符等,與方法重載沒有任何關系。

使用方法重載其實就是避免出現繁多的方法名,有些方法的功能是相似的,如果重新建立一個方法,重新取個方法名稱,會降低程序可讀性。

例 1
在比較數值時,數值的個數和類型是不固定的,可能是兩個 int 類型的數值,也可能是兩個 double 類型的數值,或者是兩個 double、一個 int 類型的數值;在這種情況下就可以使用方法的重載來實現數值之間的比較功能。具體實現代碼如下:

public class OverLoading {public void max(int a, int b) {// 含有兩個int類型參數的方法System.out.println(a > b ? a : b);}public void max(double a, double b) {// 含有兩個double類型參數的方法System.out.println(a > b ? a : b);}public void max(double a, double b, int c) {// 含有兩個double類型參數和一個int類型參數的方法double max = (double) (a > b ? a : b);System.out.println(c > max ? c : max);}public static void main(String[] args) {OverLoading ol = new OverLoading();System.out.println("1 與 5 比較,較大的是:");ol.max(1, 5);System.out.println("5.205 與 5.8 比較,較大的是:");ol.max(5.205, 5.8);System.out.println("2.15、0.05、58 中,較大的是:");ol.max(2.15, 0.05, 58);} }

編譯、運行上面程序完全正常,雖然 3 個 max() 方法的方法名相同,但因為它們的形參列表不同,所以系統可以正常區分出這 3 個方法。當運行時,Java 虛擬機會根據傳遞過來的不同參數來調用不同的方法。運行結果如下:

15 比較,較大的是: 5 5.2055.8 比較,較大的是: 5.8 2.150.0558 中,較大的是: 58.0

為什么方法重載不能用方法的返回值類型區分呢?

對于int f( ) { }和void( ) { }兩個方法,如果這樣調用int result = f();,系統可以識別是調用返回值類型為 int 的方法,但 Java 調用方法時可以忽略方法返回值,如果采用如下方法來調用f();,你能判斷是調用哪個方法嗎?如果你尚且不能判斷,那么 Java 系統也會糊涂。在編程過程中有一條重要規則就是不要讓系統糊涂,系統一糊涂,肯定就是你錯了。因此,Java 里不能用方法返回值類型作為區分方法重載的依據。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的1.7 方法重载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。