Java方法入門:定義、調用與參數傳遞,看完就會

Java方法入門:定義、調用與參數傳遞

一、什麼是方法?

在Java中,“方法”就像一個小工具。我們可以把重複要做的事情(比如計算兩數之和、打印一段文字)封裝到方法裏,以後需要的時候直接“調用”這個方法,不用每次重複寫代碼。就像我們做飯時,把“切菜”步驟寫成一個方法,之後每次做飯切菜都直接調用這個方法,省時又省力。

二、方法的定義格式

定義一個方法,需要明確它的功能輸入輸出。Java方法的基本格式如下:

修飾符 返回值類型 方法名(參數列表) {
    // 方法體:方法要執行的具體代碼
    return 返回值; // 如果有返回值,需要用return返回結果
}

關鍵部分解釋:

  • 修飾符:暫時瞭解public static(表示公開、靜態方法,後面會講),初學者可先忽略細節。
  • 返回值類型:方法執行完後,是否要返回結果?如果返回,結果是什麼類型(如int整數、String字符串、void無返回值)。
  • 方法名:要能體現方法功能,遵循小駝峯命名法(如addprintName)。
  • 參數列表:調用方法時需要傳入的數據,格式是參數類型 參數名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方法中非常重要的概念。這裏我們重點理解基本數據類型的參數傳遞(如intdoubleboolean等)。

1. 形參 vs 實參

  • 形參:方法定義時聲明的參數(如add方法中的ab),僅在方法內部有效。
  • 實參:調用方法時傳入的具體值(如add(3,5)中的35),是真實傳遞給形參的數據。

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. 對比:引用類型參數傳遞

如果參數是數組、對象等引用類型(如StringArrayList),情況會不同。但對於初學者,我們先聚焦基本類型,後續再深入學習引用類型。

五、小練習:寫一個計算平均值的方法

需求:定義一個方法,傳入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方法的入門知識,接下來可以嘗試寫更多不同功能的方法,比如計算斐波那契數列、判斷素數等,鞏固所學內容!

小夜