calculateArea)void 表示無返回)// 1. 無返回值,單獨調用
methodName(argList);
// 2. 有返回值,接收結果
ReturnType var = methodName(argList);
// 3. 返回值不需使用,直接忽略(不推薦)
methodName(argList);
鐵律:實際參數(實參)的類型、個數、順序必須與形式參數(形參)完全匹配。
修飾符 返回類型 方法名(參數類型 參數名, ...) {
// 方法體
return 返回值; // void 方法可省略或寫 return;
}
public static void greet(String name) {
System.out.println("Hello, " + name);
}
public static String ageGroup(int age) {
if (age > 0 && age < 18) return "未成年";
else if (age < 35) return "青年";
else if (age < 55) return "中年";
else if (age < 150) return "老年";
else return "年齡輸入錯誤";
}
Java 只有值傳遞,但分兩種情況:
| 參數類型 | 傳遞內容 | 方法內修改是否影響外部 |
|---|---|---|
| 基本類型 | 數值的副本 | 不影響 |
| 引用類型 | 引用的副本(指向同一物件) | 可修改物件內部狀態,但無法改變外部引用指向 |
public static void modifyPrimitive(int x) {
x = 20; // 修改副本
}
int a = 10;
modifyPrimitive(a);
System.out.println(a); // 輸出 10
public static void modifyObject(StringBuilder sb) {
sb.append(" World"); // 修改物件內容
}
StringBuilder s = new StringBuilder("Hello");
modifyObject(s);
System.out.println(s); // 輸出 "Hello World"
public static void swapRef(StringBuilder sb) {
sb = new StringBuilder("New"); // 只改變區域引用指向
}
StringBuilder s = new StringBuilder("Old");
swapRef(s);
System.out.println(s); // 輸出 "Old",外部引用未變
同一類中,方法名相同但參數列表不同(類型、個數、順序至少一項不同)。返回類型、修飾符、拋出異常均可不同,但不能僅靠返回類型區分。
public int sum(int a, int b) { return a + b; }
public double sum(double a, double b) { return a + b; }
public int sum(int a, int b, int c) { return a + b + c; }
calculateTotal、isValid@param、@return、@throws 文檔註解