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

Java函数中参数的传递方式有哪些?

发布时间:2023-07-01 07:59:13

Java函数中参数的传递方式有值传递和引用传递两种。

1. 值传递:

值传递是指在函数调用过程中,将实际参数的值复制一份传递给形式参数,即函数内部对形参进行操作不会影响到实际参数。Java中的基本类型(int、double、char等)都是采用值传递方式传递的。

示例代码如下:

public class ValuePassing {
    public static void main(String[] args) {
        int a = 10;
        changeValue(a);
        System.out.println("a = " + a);
    }

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

运行结果为:a = 10。说明在changeValue函数中修改了形参num的值,并不会影响到实际参数a的值。

2. 引用传递:

引用传递是指在函数调用过程中,将实际参数的地址传递给形式参数,即函数内部对形参进行操作会影响到实际参数。Java中的对象类型(包括数组)都是采用引用传递方式传递的。

示例代码如下:

public class ReferencePassing {
    public static void main(String[] args) {
        int[] array = {1, 2, 3};
        changeArray(array);
        System.out.println("array[0] = " + array[0]);
    }

    public static void changeArray(int[] arr) {
        arr[0] = 10;
    }
}

运行结果为:array[0] = 10。说明在changeArray函数中修改了形参arr数组的元素值,实际参数array的元素值也发生了变化。

需要注意的是,在Java中的对象类型中,虽然采用的是引用传递,但是也存在值传递的情况,即将对象的引用值复制一份传递给形式参数,在函数内部修改形参的引用值不会影响到实际参数,但是如果在函数内部修改了形参引用指向的对象的状态,那么会影响到实际参数。

总结一下,Java函数中参数的传递方式有值传递和引用传递两种。基本类型采用值传递方式传递,对象类型采用引用传递方式传递。在引用传递中,大部分情况下修改形参的状态会影响到实际参数,但是修改形参的引用值不会影响到实际参数。