Java基礎之方法重載

在日常生活中,相同的詞可以表達多種不同的含義。而把這一思想放到程序設計語言當中,用“重載”來代表。特別是含義之間的差別很小的時候,這種表達方式的作用就顯得的尤爲重要。方法的重載在Java語言中可以說是隨處可見。那麼我們應該如何去判斷方法的重載那?

  • 區分重載的方法

Java是如何找到你調用的方法是哪一個的那?其實規則很簡單:每個重載的方法都必須有一個獨一無二的參數類型列表。

對規則進行簡單的理解,不難發現,對於名字相同的方法,除了參數類型的差異之外,幾乎沒有其他方法來區別他們。有的人可能會說,除了參數類型之間的差異之外,還有就是參數順序的不同也是可以分辨的。不過,一般情況下,我們是不會這麼做的,因爲從代碼的維護性能來看,這無疑是一種負擔。

  • 以返回值來區分重載方法

有的人可能又會想到:“區分方法重載的時候,不僅可以用類名和方法的形參列表作爲標準,還有不同的就是用方法的放回值來區分”比如下面的兩個方法,即便他們有同樣的方法名和形參,但卻很容易的可以區分他們:

void f(){}
int f(){return 1;}

Java編譯器可以根據具體語境做出調用。比如在int x=f()中,編譯器可以很清楚的知道是調用第二個f()方法。但是,我們在開發過程中,並不會太過多的關注方法的返回值,真正關注的是方法在調用的過程中所達到的效果有沒有實現。所以,我們關注更多的是形參。如果出現代碼中有一段這樣的調用方法:

f();

這個時候,Java編譯器該如何做出判斷?所以,根據方法的返回值來區分重載方法是行不通的。 

  • 基本類型的重載問題

在進行基本類型的重載方法過程中,如果實參類型小於形參類型,實參類型會自動提升。但是,在這一過程中,char型會直接提升到int型。如果實參小於形參的話,會執行窄化轉換。但是這一過程中,需要注意形參的範圍。

參考文獻:《Java編程思想》

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章