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

Java函数的参数传递方式和应用

发布时间:2023-06-27 00:13:57

Java函数的参数传递方式和应用

Java 中函数的参数传递方式包含传值和传引用两种方式,对于不同数据类型的参数,传递方式也不同,下面我们来详细了解并应用这些知识。

1. 传值

传值是指在函数调用时,复制参数的值,然后传递给函数处理,函数内部对参数进行处理不会改变调用者的实参值。如下面的代码:

public class Main {
    public static void main(String[] args) {
        int num = 10;
        System.out.println("调用之前 num 的值是:" + num);
        changeValue(num);
        System.out.println("调用之后 num 的值是:" + num);
    }

    public static void changeValue(int i) {
        i = 20;
    }
}

这个示例中,我们定义了一个 changeValue 函数,接收一个整数参数 i,并将其值改变为 20。在 main 函数中,我们定义了一个整数变量 num,将其赋初始值为 10,然后调用 changeValue 函数,并输出调用结果。运行程序后,我们会发现输出为:

调用之前 num 的值是:10
调用之后 num 的值是:10

可以看到,虽然在 changeValue 函数中我们将参数 i 的值修改为 20,但在调用 main 函数时,变量 num 的值没有受到影响,因为num 是以传值方式传递给 changeValue 函数的。

2. 传引用

传引用是指在函数调用时,复制参数的引用地址,并不是参数的值,当函数内部通过引用地址操作参数时,会改变调用函数的实参的值。如下面的代码:

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3};
        System.out.println("调用之前 arr 数组的第一个值是:" + arr[0]);
        changeValue(arr);
        System.out.println("调用之后 arr 数组的第一个值是:" + arr[0]);
    }

    public static void changeValue(int[] arr) {
        arr[0] = 4;
    }
}

在这个例子中,我们同样定义了一个 changeValue 函数,接收一个整型数组参数 arr。在 main 函数中,我们也定义了一个名为 arr 的整型数组,将其赋初值为 1,2,3。我们将这个数组传入 changeValue 函数,并将第一个值修改为 4。最后输出数组的第一个值。运行程序,我们会看到输出为:

调用之前 arr 数组的第一个值是:1
调用之后 arr 数组的第一个值是:4

可以看到,changeValue 函数中修改数组元素的操作导致了数组元素值的变化,因为我们是以传引用方式传递数组参数的。

3. 小结

Java 中函数的参数传递方式包括传值和传引用两种方式。对于基本数据类型,是以传值方式传递的,对于对象引用类型,则是以传引用方式传递的。在实际编程中,我们需要根据不同的需要选择合适的方式。

注:本文中翻译示例代码和注释来源于网络。