欢迎访问宙启技术站
智能推送

具有参数的Java函数的传递方式

发布时间:2023-07-03 22:43:43

在Java中,函数的参数传递方式有两种:值传递(pass by value)和引用传递(pass by reference)。

1. 值传递:

在值传递中,函数调用时,会将实际参数的值复制一份,然后将这个副本传递给函数,在函数内部对参数的修改不会影响到实际参数的值。

例如:

public class Main {
    public static void main(String[] args) {
        int num = 10;
        changeValue(num);
        System.out.println(num); // 输出10
    }

    public static void changeValue(int value) {
        value = value + 5;
        System.out.println(value); // 输出15
    }
}

在上述例子中,主函数中定义了一个变量num,并将其值赋为10。然后调用changeValue函数,传递了num的值。在changeValue函数中,对参数value进行操作,将其增加5。然后在主函数中输出num的值,发现并没有改变,说明对参数的修改不会影响到实际参数的值。

2. 引用传递:

在引用传递中,函数调用时,会将实际参数的引用(内存地址)传递给函数,在函数内部对参数的修改会影响到实际参数的值。

例如:

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3};
        changeArray(arr);
        System.out.println(Arrays.toString(arr)); // 输出[4, 5, 6]
    }

    public static void changeArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            array[i] += 3;
        }
    }
}

在上述例子中,主函数中定义了一个数组arr,并赋予了一些初始值。然后调用changeArray函数,传递了arr的引用。在changeArray函数中,对参数array进行操作,将每个元素加上3。然后在主函数中输出arr的值,发现数组的元素发生了变化,说明对参数的修改会影响到实际参数的值。

需要注意的是,引用传递只是将引用(内存地址)传递给函数,而不是传递对象本身。因此,在函数中修改引用的值(比如将引用指向另一个对象),并不会影响到实际参数。

总结:

Java中函数的参数传递方式有值传递和引用传递两种。值传递会复制参数的值传递给函数,在函数内部对参数的修改不会影响到实际参数。引用传递会将参数的引用传递给函数,在函数内部对参数的修改会影响到实际参数。实际参数可以是基本类型的变量或对象的引用。