溫馨提示×

java方法參數(shù)怎樣傳遞

小樊
81
2024-09-30 04:08:23
欄目: 編程語言

在Java中,方法參數(shù)可以通過值傳遞(pass by value)或引用傳遞(pass by reference)的方式傳遞給方法。但是,對于基本數(shù)據(jù)類型(如int、float、double等),傳遞的是值的副本;而對于對象類型(如數(shù)組、自定義類等),傳遞的是引用的副本。

  1. 值傳遞(Pass by Value):

對于基本數(shù)據(jù)類型,參數(shù)傳遞采用的是值傳遞。這意味著方法接收的是實(shí)際參數(shù)值的一個副本。在方法內(nèi)部對參數(shù)的修改不會影響到實(shí)際參數(shù)。

示例:

public class Main {
    public static void main(String[] args) {
        int a = 10;
        System.out.println("Before method call: " + a); // 輸出:Before method call: 10
        modifyValue(a);
        System.out.println("After method call: " + a); // 輸出:After method call: 10
    }

    public static void modifyValue(int x) {
        x = 20;
    }
}
  1. 引用傳遞(Pass by Reference):

對于對象類型,參數(shù)傳遞采用的是引用傳遞。這意味著方法接收的是實(shí)際參數(shù)引用的一個副本。在方法內(nèi)部,如果對這個引用進(jìn)行操作(例如將引用指向另一個對象),則會影響到實(shí)際參數(shù)。

示例:

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        System.out.println("Before method call: " + Arrays.toString(arr)); // 輸出:Before method call: [1, 2, 3]
        modifyArray(arr);
        System.out.println("After method call: " + Arrays.toString(arr)); // 輸出:After method call: [10, 2, 3]
    }

    public static void modifyArray(int[] array) {
        array[0] = 10;
    }
}

需要注意的是,雖然對象類型的參數(shù)傳遞采用的是引用傳遞,但這個引用本身也是通過值傳遞的方式傳遞給方法的。因此,如果在方法內(nèi)部將引用設(shè)置為null,實(shí)際參數(shù)的引用不會受到影響。

0