>[success] # java 方法
1. 方法(method)是程序中最小的執行單元
* 方法必須先創建才可以使用,該過程成為**方法定義**
* 方法創建后并**不是直接可以運行**的,需要**手動使用后,才執行,該過程成為方法調用**
2. 方法作用,**將重復的代碼、具有獨立性的功能抽取到方法中,這樣可以提高代碼復用性,讓代碼邏輯更加清晰**
3. `java `中方法格式定義
* **方法名稱**:自己取名,有意義,英文小寫,駝峰模式。(有意義的名字即可)
* **方法體代碼**:完成自己需要寫的功能代碼即可。(具體需求具體實現),需要關注的就兩點:**1、分析方法是否需要申明返回值類型;2、分析方法是否需要接收參數。**
~~~
修飾符 返回值類型 方法名( 形參列表 ){
方法體代碼(需要執行的功能代碼)
return 返回值;
}
~~~
* 效果

* 整體案例調用時候只需要直接調用`方法名();`
~~~
public class Test {
public static void main(String[] args) {
// 直接方法名調用
System.out.print(add(5, 6));
}
public static int add(int a, int b) {
int c = a + b;
return c;
}
}
~~~
**方法申明了具體的返回值類型,內部必須使用return返回對應類型的數據** ,形參列表可以有多個,甚至可以沒有; 如果有多個形參,多個形參必須用“,”隔開,且不能給初始化值
*****
**注 : 案例暫時都使用`public static` 修飾。這樣可以直接調用方法**
>[danger] ##### 關于返回值
* 返回值主要指從`方法體內`返回到`方法體外的數據` 內容
* 在方法體中使用`return`關鍵字可以返回具體的數據內容
* 返回值類型可以是`基本數據類型`,也可以是`引用數據類型`
* 當該方法`不需要返回任何數據內容`時,返回值類型必須申明成**void(無返回值)**, 此時方法內部**不可以使用return返回數據。** 返回值類型申明為`void`可以稱為無返回值的方法
~~~
public class Person {
// 聲明方法 無返回值
public void sleep() {
System.out.println("睡覺");
}
// 執行方法的入口文件
public static void main(String[] args) {
sleep()
}
}
~~~
>[danger] ##### 形參列表
* `形式參數`列表主要指多個形式參數組成的列表,語法格式如下:`數據類型 形參變量名1, 數據類型 形參變量名2`
* 調用時候 `實際參數`列表主要用于對形式參數列表進行初始化操作,因此參數的個數、類型以及順序都要完全一致
* 總結:`定義方法`時的`參數叫形參`,`調用方法時`傳遞的參數叫`實參`
~~~
public class Test {
// 聲明方法 無返回值 傳入參數
public static void sleep(String name, int age) {
System.out.print(name + age);
}
// 執行方法的入口文件
public static void main(String[] args) {
sleep("w", 18);
}
}
~~~
>[danger] ##### 可變長參數
* `參數的類型... 參數名`,方法參數部分指定類型的參數個數是可以改變的,也就是0~n個
* 一個方法的形參列表中最多只能聲明`一個可變長形參`,并且需要放到參數列表的`末尾`
* Java的可變參數,會被編譯器轉型為一個數組
~~~
import java.util.Arrays;
public class Test {
public static void printParams(String... n) {
System.out.print(Arrays.toString(n)); // [w, z, b]
}
// 執行方法的入口文件
public static void main(String[] args) {
printParams("w", "z", "b");
}
}
~~~
>[info] ## 案例
~~~
public class Test {
public static void main(String[] args) {
// 目標:掌握帶返回值方法的定義和調用格式
// 直接調用
// getSum(10,20,30);
// 賦值調用
// int sum = getSum(10,20,30);
// System.out.println(sum);
// 輸出調用
// System.out.println(getSum(10,20,30));
// 先計算第一個季度的營業額
int sum1 = getSum(10, 20, 30);
// 再來計算第二個季度的營業額
int sum2 = getSum(20, 30, 40);
// 計算第三個季度的營業額
int sum3 = getSum(20, 30, 40);
// 計算第四個季度的營業額
int sum4 = getSum(20, 30, 40);
// 求全年的總營業額
int sum = sum1 + sum2 + sum3 + sum4;
System.out.println(sum);
}
public static int getSum(int num1, int num2, int num3) {
int result = num1 + num2 + num3;
return result;// 返回給方法的調用處
}
}
~~~
>[info] ## 總結
* 方法的編寫順序無所謂。
* 方法與方法之間是平級關系,不能嵌套定義。

* 方法的返回值類型為**void(無返回值),方法內則不能使用return返回數據**,如果方法的**返回值類型寫了具體類型,方法內部則必須使用return返回對應類型的數據**。
* `return`語句下面,不能編寫代碼,因為永遠執行不到,屬于無效的代碼。
* 方法不調用就不執行, 調用時必須嚴格匹配方法的參數情況。**有返回值的方法調用時可以選擇定義變量接收結果**,或者直接輸出調用,甚至直接調用;**無返回值方法的調用只能直接調用**。
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法