樂字節Java方法、調用、重載、遞歸

一、概述

方法是指人們在實踐過程中爲達到一定目的和效果所採取的辦法、手段和解決方案。

所謂方法,就是解決一類問題的代碼的有序組合,是一個功能模塊。編程語言中的方法是組合在一起來執行操作語句的集合。例如,System.out.println 方法,該系統實際上是爲了在控制檯上輸出的消息執行多條語句。可以將方法理解爲“CD機”即放入不同的碟片出現不同的歌曲;或“榨汁機”即放入不同的水果榨出不同的果汁。
圖片描述

方法就是 給能夠解決問題的多行代碼取了一個名字的功能塊 ,方便我們多次使用。方法的作用:

1)、main方法過於臃腫

2)、重複執行的代碼塊 命名,方便重複使用

3)、方便自上而下分解問題

4)、方便維護代碼

現在,我們將學習如何定義自己的方法有或沒有返回值,使用即調用帶或不帶參數,使用相同的名稱重載方法的方法中。

二、定義(method define)

2.1 聲明格式:

圖片描述

1)、訪問修飾符:方法允許被訪問的權限範圍;

2)、返回值類型:如果方法不返回任何值,則指定爲void;如果方法具有返回值,

則需要指定返回值的類型,並且在方法體中使用 return語句返回值;

3)、方法名:定義方法的名字,必須使用合法的標識符,見名知意。

4)、形參列表:參數可以有多個,多個參數間以逗號隔開,每個參數由參數類型和參數名組成,以空格隔開。

2.2 現有格式:

圖片描述

注意: 方法只能定義在類中;同時方法不能嵌套;方法編寫位置與使用無關。

2.3 分類

根據方法是否帶參、是否有返回值,可以將方法分爲:
圖片描述

2.4 void 關鍵字

一個 void方法,它不返回任何值。

2.5 return關鍵字

return 爲 跳出方法 或 返回值。

注意:在一個作用域內 return 之後不能再存在代碼

return語句:

①return語句可以出現在任何(有返回值和沒有返回值)方法中

②return語句 在沒有返回值的方法中,用來提前結束方法

③return語句 在有返回值的方法當中,有兩個作用:提前結束方法,送出結果。

④一個方法只能執行一條return語句

⑤在一定會被執行的return語句後,寫的語句爲不可達語句,程序自動檢測這種語句,永遠不會被執行到,報錯。

⑥在循環中無條件的break後寫語句,會出現不可達語句

⑦在死循環(沒有break來結束的死循環)後寫語句,會出現不可達語句

2.6 思考角度

編寫一個方法時,請思考這四個方面:

1)、確定方法的功能

2)、確定方法的名稱

3)、此方法能否獨立運行,不能獨立,需要外界數據參與運算,確定形參。

4)、此方法完成後,其結果是否直接影響調用處的後續操作,如果影響,確定返回類型,不影響則爲 void

2.7 簽名(signature)

方法的簽名,確保在一個類中的唯一性。方法的簽名只看 方法名和形參

( 類型 個數 和順序) ,與修飾符 返回類型 和形參名無關。

三、調用(method invoke)

3.1 格式

方法定義完成後,若要使用,必須調用它。在調用時,調用的控制權由方法調用處轉移到方法中,方法遇到 return 或者 }結束時,將調用權交還給調用處。也就是”從哪裏來到哪裏去”的套路。

如調用以上方法:

①如果該方法返回 void,則調用該方法必須是一個語句,不能使用變量接收。

②如果該方法具有返回類型,返回一個值,調用該方法通常被視爲一個值。

總結如下:

[接收變量=]方法名([實參列表])

①void 沒有返回值,不能使用接收變量。

②存在返回值,接收變量或匿名接收(輸出或者調用)

3.2 類型兼容

在調用方法時,形參與實參,接收類型與返回類型和返回值類型應該保持兼容。

①形參>=實參

②接收類型>=返回值類型>=return類型

3.3 值傳遞

當使用一個參數調用一個方法時,參數的值拷貝給參數,即拷貝副本。這被稱作按值傳遞。

四、重載(method invoke)

一般來說,功能點相同的方法才適合使用重載,重載必須滿足如下要求:

①必須是同一個類

②方法名必須相同

③參數列表不同

注意:方法重載與返回值無關。

參數列表不同:

參數的個數不同。

參數的對應的數據類型不同。

參數的順序不同(不同類型的可以交換位置)

五、遞歸結構

遞歸是一種常見的解決問題的方法,即把問題逐漸簡單化。 遞歸的基本思想就是 自己調用自己 ”,一個使用遞歸技術的方法將會直接或者間接的調用自己。利用遞歸可以用簡單的程序來解決一些複雜的問題。比如:大多數排序使用的就是遞歸算法。

遞歸結構包括兩個部分:

① 定義遞歸頭。解答:什麼時候不調用自身方法。如果沒有頭,將陷入死循環。

② 遞歸體。解答:什麼時候需要調用自身方法。

遞歸的缺陷:

簡單的程序是遞歸的優點之一。但是遞歸調用會佔用大量的系統堆棧,內存耗用多,在遞歸調用層次多時速度要比循環慢的多。所以再使用時要慎重。

注意:任何可用遞歸解決的問題也能使用迭代解決。但遞歸方法可以更加自然地反映問題,並且易於理解和調試,並且不強調效率問題時,可以採用遞歸;

在要求高性能的情況下儘量避免使用遞歸,遞歸調用既花時間又耗內存。

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