從零開始學Java36之方法的重載是咋回事
一. 方法重載
1. 概念
所謂方法的重(chong)載(重復出現),就是指在一個類中可以有多個名稱相同但參數不同的方法,不過方法重載與返回值的類型無關。在Java中,無論是普通方法,還是構造方法,都可以進行重載。我們在調用重載的方法時,會根據傳遞的參數不同,來執行不同的方法。
通過方法的重載,我們就可以把一系列功能相似,但參數不同的方法,用同一個方法名進行定義。這樣就避免了出現繁多的方法名,如果我們每次新建一個方法,就取個新的方法名,就會降低程序的可讀性。使用同一個方法名稱,我們就很容易記住這些方法,使用起來就很方便靈活。
2. 要求
根據方法重載的概念可知,方法重載時有如下要求:
1. 同名不同參(參數類型、個數、順序);
2. 與返回值、訪問修飾符無關。
也就是說,方法重載時,要求方法的名稱相同,但參數不同,只要參數的類型、個數、順序有一個地方不同即可。但方法的重載與返回值和使用的訪問修飾符沒有關系!
我們可以自己進行重載方法的定義,當然java源碼中也有大量的重載方法,比如我們常見的String類中就有,如下圖所示:
比如String字符串中就定義了多個indexOf()和lastIndexOf()重載方法,當然也有其他的重載方法。這些方法名稱相同,但參數肯定不同,和返回值沒有關系!
說了這么多之后,接下來還是讓我們通過一些案例看看方法的重載怎么實現吧。
二. 代碼案例
1. 普通方法重載
接下來我們設計一個案例,用于比較兩個數字的大小。我們在比較兩個數值時,數值的類型是不固定的,可能是兩個int類型的數值,也可能是兩個double類型的數值,也可能是兩個double、一個int類型的數值......在這種情況下,我們就可以使用方法的重載來實現數值之間的比較。具體實現代碼參考如下:
以上代碼,編譯、運行都是完全沒問題的。雖然3個max()方法名稱相同,但它們的形參列表不同,所以系統可以正常區分出這3個方法。在運行時,Java虛擬機會根據傳遞過來的不同參數來調用不同的方法。
2. 構造方法重載
除了普通方法可以重載之外,構造方法也可以重載。但是我們要注意,構造方法沒有返回值。
我們在構造Car汽車類對象時,可以如下所示:
這樣通過傳入不同的參數,就可以構造出不同的汽車對象。

相關推薦HOT
更多>>
xml解析器
SAX解析器:基于事件驅動的解析器,逐行讀取XML文件并觸發相應的事件,適用于處理大型XML文件,但需要手動編寫事件處理器來處理XML文件中的數據...詳情>>
2023-03-21 16:03:51
java全局變量
如果全局變量是一個對象,則可以更改該對象的狀態,即使變量本身是final類型。當一個方法被調用時,會為該方法在棧上分配一塊內存空間,用于存...詳情>>
2023-03-17 10:01:40
帶你手把手解決Java常見Bug
剛開始學習Java語言的小伙伴, 很可能被各種各樣的程序bug搞得焦頭爛額, 甚至被勸退。別怕,小編將手把手帶你了解Java中的異常體系, 如何識別Bug...詳情>>
2023-03-13 16:05:00
JavaScript 內的 this 指向
在 javascript 語言中, 有一個奇奇怪怪的 "關鍵字" 叫做 this詳情>>
2023-03-07 15:21:00