方法四要素
- 名稱:標識符,見名知意(動詞開頭:
calculateTotal)。
- 輸入:參數列表(類型 + 名稱),零個或多個。
- 加工:方法體邏輯,封裝具體實現細節。
- 輸出:返回值類型(
void 表示無返回)。
定義語法範式
[修飾符] 返回類型 方法名(參數列表) {
// 方法體
[return 返回值;]
}
兩類方法模板
1. 無返回值
public static void greet(String name) {
System.out.println("Hello, " + name);
}
// 調用
greet("張三"); // 獨立語句
2. 有返回值
public static String ageStage(int age) {
if (age < 18) return "未成年";
else if (age < 35) return "青年";
else if (age < 55) return "中年";
else if (age < 150) return "老年";
else return "年齡輸入錯誤";
}
// 調用
String stage = ageStage(25); // 賦值給變量
System.out.println("你已經是" + stage + "了");
參數傳遞機制:值傳遞統一論
| 類型 | 傳遞內容 | 方法內修改對外部影響 |
| 基本類型 (int, double...) | 值的副本 | 無影響,原變量不變 |
| 引用類型 (對象、數組) | 引用的副本 (地址值) | 可修改對象內部狀態,不可改變引用指向 |
代碼驗證
public static void modifyPrimitive(int x) { x = 10; }
public static void modifyObject(StringBuilder sb) { sb.append("!"); }
public static void modifyRef(StringBuilder sb) { sb = new StringBuilder("new"); } // 僅改變局部引用
public static void main(String[] args) {
int a = 5; modifyPrimitive(a); System.out.println(a); // 5
StringBuilder s = new StringBuilder("hi"); modifyObject(s); System.out.println(s); // hi!
StringBuilder t = new StringBuilder("hi"); modifyRef(t); System.out.println(t); // hi
}
方法設計五大原則
- 單一職責:一個方法只做一件事,超過 20 行考慮拆分。
- 高內聚低耦合:參數盡量用接口/基類,返回具體實現類。
- 防衛性編程:入參非空檢查、邊界校驗、異常快速失敗。
- 純函數傾向:無副作用、同輸入必同輸出,易測試、易並行。
- 命名規範:動詞短語、布爾值以
is/has/can 開頭、轉換用 to/as、工廠用 create/build。
- 上一篇文章: Eclipse 編譯與運行機制揭秘:javac 自動編譯 vs java 運行入口
- 下一篇文章: Spring MVC 配置全流程:從 DispatcherServlet 到 RESTful Controller 實戰
Copyright ©
程式碼之家 All Rights Reserved