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

Java函数的参数传递方式及取值方式

发布时间:2023-06-30 15:52:54

Java中的参数传递方式分为按值传递和引用传递。在Java中,基本类型的变量(如int、float、char等)是按值传递的,而引用类型的变量(如对象、数组等)是按引用传递的。

按值传递是指将实际参数的复制副本传递给形式参数,在函数内对参数值的修改不会影响到实际参数的值。例如,下面的例子展示了按值传递的情况:

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

public static void main(String[] args) {
    int num = 5;
    changeValue(num);
    System.out.println(num);  // 输出结果为5,因为num的值在changeValue函数中被修改,但不影响原来的num值
}

按引用传递是指将参数的引用地址传递给形式参数,在函数内对参数的修改会影响到实际参数的值。例如,下面的例子展示了按引用传递的情况:

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

public static void main(String[] args) {
    int[] arr = {5};
    changeValue(arr);
    System.out.println(arr[0]);  // 输出结果为10,因为数组arr的      个元素在changeValue函数中被修改,影响到了原来的arr值
}

在Java中,可以通过以下几种方式获取函数传递的参数值:

1. 对于按值传递的参数,在函数内部直接使用形式参数的值即可获取。例如,在changeValue函数中直接使用num即可获取传递进来的参数值。

2. 对于按引用传递的参数,可以通过形式参数的引用地址来获取传递进来的参数值。例如,在changeValue函数中使用arr[0]即可获取传递进来的数组的 个元素的值。

需要注意的是,当按引用传递的参数是对象时,可以通过对象的成员变量来获取传递进来的参数值。例如,下面的例子展示了通过对象的成员变量获取传递进来的参数值:

public class Person {
    private int age;

    public Person(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }
}

public static void changeValue(Person person) {
    person.age = 20;
}

public static void main(String[] args) {
    Person person = new Person(10);
    changeValue(person);
    System.out.println(person.getAge());  // 输出结果为20,因为通过对象的成员变量age可以获取传递进来的参数值
}

总结起来,Java的参数传递方式包括按值传递和引用传递,可以通过形式参数的值或者引用地址来获取传递进来的参数值。当按引用传递的参数是对象时,可以通过对象的成员变量来获取参数值。