Java方法入門:定義、調用與參數傳遞¶
一、什麼是方法?¶
在Java中,“方法”就像一個小工具。我們可以把重複要做的事情(比如計算兩數之和、打印一段文字)封裝到方法裏,以後需要的時候直接“調用”這個方法,不用每次重複寫代碼。就像我們做飯時,把“切菜”步驟寫成一個方法,之後每次做飯切菜都直接調用這個方法,省時又省力。
二、方法的定義格式¶
定義一個方法,需要明確它的功能、輸入和輸出。Java方法的基本格式如下:
修飾符 返回值類型 方法名(參數列表) {
// 方法體:方法要執行的具體代碼
return 返回值; // 如果有返回值,需要用return返回結果
}
關鍵部分解釋:¶
- 修飾符:暫時瞭解
public static(表示公開、靜態方法,後面會講),初學者可先忽略細節。 - 返回值類型:方法執行完後,是否要返回結果?如果返回,結果是什麼類型(如
int整數、String字符串、void無返回值)。 - 方法名:要能體現方法功能,遵循小駝峯命名法(如
add、printName)。 - 參數列表:調用方法時需要傳入的數據,格式是
參數類型 參數名1, 參數類型 參數名2...(如果沒有參數,括號爲空)。 - 方法體:大括號
{}裏的代碼,是方法實際執行的邏輯。 - return:如果有返回值,用
return返回對應類型的結果;void方法無返回值,可寫return;或省略。
定義示例1:無參數無返回值(打印信息)¶
public static void printHello() {
// 方法體:打印一句話
System.out.println("Hello, 方法!");
}
定義示例2:有參數有返回值(計算兩數之和)¶
public static int add(int a, int b) {
// 參數a和b是形參(方法定義時的參數)
int sum = a + b;
return sum; // 返回計算結果
}
三、方法的調用¶
定義好方法後,我們需要在其他地方“調用”它才能執行。調用格式是:對象名.方法名(參數值)(如果是靜態方法,也可以直接類名.方法名(參數值))。
1. 調用無參數方法¶
public class MethodDemo {
// 定義printHello方法(前面示例)
public static void printHello() {
System.out.println("Hello, 方法!");
}
public static void main(String[] args) {
// 調用printHello方法:直接寫方法名,括號空着
printHello(); // 輸出:Hello, 方法!
}
}
2. 調用有參數方法¶
public class MethodDemo {
// 定義add方法(前面示例)
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 調用add方法,傳入實參(調用時的具體值)
int result = add(3, 5); // 實參3和5傳給形參a和b
System.out.println("3+5的結果是:" + result); // 輸出:3+5的結果是:8
}
}
3. 調用時的注意事項¶
- 參數順序和類型要匹配:調用時傳入的參數,順序和類型必須與方法定義的參數列表一致。
- 返回值要處理:如果方法有返回值(如
int),調用時需要用變量接收結果(如int result = add(3,5));如果是void無返回值,直接調用即可。
四、參數傳遞:值傳遞的奧祕¶
參數傳遞是Java方法中非常重要的概念。這裏我們重點理解基本數據類型的參數傳遞(如int、double、boolean等)。
1. 形參 vs 實參¶
- 形參:方法定義時聲明的參數(如
add方法中的a和b),僅在方法內部有效。 - 實參:調用方法時傳入的具體值(如
add(3,5)中的3和5),是真實傳遞給形參的數據。
2. 值傳遞的特點¶
Java中參數傳遞是值傳遞:方法調用時,實參的值會被“複製”一份傳給形參,形參的修改不會影響實參。
示例:基本類型參數傳遞¶
public class ValuePassDemo {
// 定義一個修改參數的方法
public static void changeNum(int num) {
num = 100; // 修改形參num的值
System.out.println("方法內部修改後,num的值:" + num); // 輸出:100
}
public static void main(String[] args) {
int x = 10; // 實參x的值
System.out.println("調用方法前,x的值:" + x); // 輸出:10
changeNum(x); // 調用方法,傳入x
System.out.println("調用方法後,x的值:" + x); // 輸出:10(原x未變)
}
}
結果分析:
調用changeNum(x)時,x的值(10)被複制傳給形參num。方法內部修改num爲100,但原變量x的值不會受影響,因爲它們是兩個獨立的變量。
3. 對比:引用類型參數傳遞¶
如果參數是數組、對象等引用類型(如String、ArrayList),情況會不同。但對於初學者,我們先聚焦基本類型,後續再深入學習引用類型。
五、小練習:寫一個計算平均值的方法¶
需求:定義一個方法,傳入3個int類型的數,返回它們的平均值(結果保留整數)。
代碼示例:
public class MethodPractice {
// 定義求平均值的方法
public static int average(int a, int b, int c) {
int sum = a + b + c;
return sum / 3; // 整數除法,結果取整
}
public static void main(String[] args) {
int avg = average(10, 20, 30);
System.out.println("三個數的平均值是:" + avg); // 輸出:20
}
}
總結¶
- 方法:是一段可重複調用的代碼塊,用於封裝功能、提高代碼複用性。
- 定義格式:
修飾符 返回值類型 方法名(參數列表) { 方法體; }。 - 調用方式:類名.方法名(實參)(靜態方法)或對象.方法名(實參)(非靜態方法)。
- 參數傳遞:基本類型參數是“值傳遞”,形參修改不影響實參;引用類型後續學習。
通過今天的學習,你已經掌握了Java方法的入門知識,接下來可以嘗試寫更多不同功能的方法,比如計算斐波那契數列、判斷素數等,鞏固所學內容!