java基礎整理Day05---方法
方法
一、概述
方法是指人們在實踐過程中為達到一定目的和效果所採取的辦法、手段和解決方案。
所謂方法,就是解決一類問題的程式碼的有序組合,是一個功能模組。程式語言中的方法是組合在一起來執行操作語句的集合。例如,System.out.println 方法,該系統實際上是為了在控制檯上輸出的訊息執行多條語句。
可以將方法理解為“CD 機”即放入不同的碟片出現不同的歌曲;或“榨汁機”即放入不同的水果榨出不同的果汁;或“手機”與卡。
方法就是 給能夠解決問題的多行程式碼取了一個名字的功能塊 ,方便我們多次使用。
方法的作用:
1)、main 方法
2)、重複執行的程式碼塊 命名,方便重複使用
3)、方便自上而下分解問題
4)、方便維護程式碼
二、定義
1、宣告格式
1)、訪問修飾符:方法允許被訪問的許可權範圍;
2)、返回值型別:如果方法不返回任何值,則指定為 void;如果方法具有返回值,則需要指定返回值的型別,並且在方法體中使用 return語句返回值;
3)、方法名:定義方法的名字,必須使用合法的識別符號,見名知意。
4)、形參列表:引數可以有多個,多個引數間以逗號隔開,每個引數由引數型別和引數名組成,以空格隔開。
2.現有格式
注意: 方法只能定義在類中;同時方法不能巢狀;方法編寫位置與使用無關。
3.分類
1)、有返回值型別的方法
修飾符 返回值型別 方法名([引數列表]){ 方法體; return 返回值; }
1.1修飾符 : public static(目前基礎修飾符)
1.2返回值型別 : 方法執行後,結果的資料型別
基本資料型別(四類八種)|引用資料型別(類 陣列 介面)
1.3方法名:方法的名字 呼叫方法必須使用方法名
嚴格遵循識別符號的命名規則|規範 第一個單詞首字母小寫,第二個單詞開始,首字母大寫
1.4 () 引數列表 可以有可以沒有–在方法執行過程中,有沒有未知的變數
如果有引數: (資料型別 引數名,資料型別 引數名…)–區域性變數的宣告,只在當前方法中有效
1.5 {}:方法體,具有特殊功能的程式碼塊
1.6 return: 結束方法
把方法的運算結果返回給呼叫者 結果的資料型別必須與返回值型別一致
1.7 呼叫: 執行方法中的程式碼 方法名字([引數列表]);
有返回值型別的方法的呼叫:
1)直接呼叫 方法名字([引數列表]); ---沒有什麼意義
2)賦值呼叫 資料型別 變數名 = 方法名字([引數列表]);
3)輸出呼叫 System.out.println(方法名字([引數列表]));
2.沒有返回值型別的方法
修飾符 void 方法名([引數列表]){
方法體語句;
return;
}
2.1 void:沒有返回值型別的方法
2.2 return:結束方法
2.3沒有返回值型別的方法的呼叫:
直接呼叫 方法名字([引數列表]);
三、方法中的引數
1. 形式引數(形參) : 定義方法的時候()中的引數
2. 實際引數(實參) : 呼叫方法的時候()中的引數
實參就是給形參賦值的
一 一對應(個數,型別,位置)
四、 return關鍵字:
1.return的作用:
有返回值型別的方法:1.提前結束方法 2.帶出返回值
沒有返回值型別的方法:1.提前結束方法
2.一個方法中只能存在一個return
3.一個一定會執行的return後不能出現語句,編譯不通過,這是不可達語句
4.不可達語句:
1)return 後面的語句
2)break後面的語句
3)continue後面
4)while(false){
5)死迴圈之後的語句
五、相容型別:
1)形引數據型別>=實引數據型別
實引數據型別不能大於形引數據型別
2)接收型別>=返回值型別>=return後面資料的型別
編譯的時候會發生語法檢查,如果語法有誤會報錯,如果沒有,編譯成功之後,編譯器會自動預設把byte,short型別的變數提升為int型別
六、方法的過載
1. 定義:
在同一個類中,多個方法擁有相同的方法名字,不同的引數列表
2. 要求:
- 同一個類中
2)多個方法,方法名字相同
3)引數列表不同|方法簽名不同
方法的簽名:方法的唯一標識(方法名+引數列表)
引數的資料的型別不同
引數的個數不同
引數的順序不同
3.注意要點:
方法的過載和方法的修飾符無關
方法的過載和有無返回值型別無關
方法的過載和返回值型別無關
方法的過載和引數名字無關
4.方法的過載特性中根據實參判斷呼叫的是哪一個過載方法
方法的過載是一個類中多型的一種體現
七、遞迴
自己呼叫自己
遞迴頭:停止自己呼叫自己的條件
遞迴體:自己呼叫自己
臨界條件:遞迴頭 停止自己呼叫自己的條件
遞迴前進段:自己呼叫自己的過程
遞迴後退段:把結果返回給上一層
缺點:非常佔用記憶體資源的過程->不推薦使用