Java中關於方法的總結

  • 方法

對於Java中的方法而言,與C或C++中的函數有些類似,但又不盡相同。對於函數來說,是可以單獨執行的。但是對於方法而言,則不允許。必須依附於類或類的實例。

那麼,同一個類的方法之間互相調用是否是直接調用呢?實際上,大多數時候,同一個類的方法之間調用我們不會手動增加調用者,但是系統會默認給一個調用者。若調用的方法則普通方法,則默認爲該類實例。若調用的方法爲靜態方法,則默認爲該類。需要強調一點的是,普通方法可以調用靜態方法,而靜態方法無法調用普通方法。

因爲Java語音是靜態,因此只要不重新編譯,則該類或該類實例所擁有方法就永恆不變。

  • 參數傳遞

對於方法而言,不論聲明的參數是基本數據類型還是引用數據類型,傳遞的方式都是值傳遞。只不過對於基本數據類型而言,傳遞的值就是其本身的值,而對於引用數據類型而言,傳遞的值是其所引用對象的地址值。

  • 形參個數可變的方法

自JDK1.5之後,出現了形參個數可變的方法聲明方式,也即在方法聲明的形參列表的最後一個形參類型後面加 “...”,表明該形參可以接收多個該類型的值。

實際上,接手的可變個數形參是作爲一個數組使用的。雖然,在方法內可變數量形參可以完全當做一個數組使用,但是在聲明的時候兩者卻有一點的區別。對於數組而言,可以出現在形參列表的任意位置,而可變數量形參卻只能出現在形參列表的最後。

  • 方法重寫和重載

關於方法重寫和重載已經是老生常談的話題,而且兩者經常用來做對比。實際上,兩者的對比是沒有任何意義的。

對於方法重寫而言,要求發生在子類和父類之間,而方法重載則是發生在同一個類之間。

對於方法重寫而言,要求方法名必須相同,形參列表的參數類型不能比父類的參數類型小,修飾符只能往權限大的擴,返回值只能與重寫方法的返回值類型相同或爲其子類,拋出異常也只能與重寫方法拋出的異常相同或爲其子類。但是對於方法重載而言,則僅僅要求方法名相同,形參列表不同罷了。

其實,方法重寫和方法重載的目的也不盡相同。方法重寫的目的在於,使得子類中重寫的方法能實現跟父類中被重寫方法一樣的功能,或者至少在方法聲明上一樣。而方法重載的目的在於,儘可能區分開重載方法。

 

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