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

了解Java函数参数传递和返回值

发布时间:2023-06-06 10:27:43

Java是一门强类型的编程语言,对函数参数传递和返回值的处理方式也有其自己的规范。在这篇文章中,我们将探讨Java中函数参数传递和返回值的相关知识。

一、函数参数传递

1、值传递

在Java中,函数参数的传递方式是值传递。值传递是指在函数调用时,实参将自己的值复制一份给形参,形参和实参在内存中是两个不同的存储空间,对形参的修改不会影响实参的值。

例如:

public void change(int x) {
    x = 10;
}

int a = 5;
change(a);
System.out.println(a); // 输出结果为5

在上面的例子中,我们定义了一个函数change,它的形参为int类型的x。在函数体内部,我们修改了x的值为10,但这个修改并没有改变a的值,a还是等于5。

2、引用传递

在Java中,对象类型的变量存储的是对象的引用,也就是对象在内存中的地址。当对象类型的变量作为函数参数时,实际上传递的是对象引用的副本,也就是说传递的是引用的值,函数内部的修改将会影响实参的值。

例如:

public class Person {
    int age;
}

public void changeAge(Person p) {
    p.age = 20;
}

Person person = new Person();
person.age = 10;
changeAge(person);
System.out.println(person.age); // 输出结果为20

在上面的例子中,我们定义了一个类Person,它有一个int类型的成员变量age。我们还定义了一个函数changeAge,它的形参为Person类型的对象p。在函数内部,我们修改了p的成员变量age的值为20,由于传递的是对象引用的副本,所以person的成员变量age的值也被改变了。

二、函数返回值

函数的返回值是指函数执行后,返回给调用者的值。在Java中,函数的返回值有以下几种情况。

1、返回值为基本数据类型

在Java中,函数的返回值可以是基本数据类型的值。例如:

public int add(int a, int b) {
    return a + b;
}
int sum = add(1, 2);
System.out.println(sum); // 输出结果为3

在上面的例子中,我们定义了一个函数add,它的返回值为int类型的值,表示两个参数的和。在函数体内部,我们使用return关键字将计算结果作为返回值返回给调用者。

2、返回值为引用类型

在Java中,函数的返回值也可以是引用类型的值,例如:

public class Person {
    int age;
}

public Person createPerson() {
    Person person = new Person();
    person.age = 10;
    return person;
}

Person p = createPerson();
System.out.println(p.age); // 输出结果为10

在上面的例子中,我们定义了一个类Person,它有一个int类型的成员变量age。我们还定义了一个函数createPerson,它返回一个Person类型的对象,该对象的age成员变量的值为10。在函数体内部,我们创建了一个Person类型的对象person并赋值,最后使用return关键字将该对象返回给调用者。

3、返回值为数组类型

在Java中,函数的返回值也可以是数组类型的值。例如:

public int[] createArray() {
    int[] array = {1, 2, 3};
    return array;
}
int[] arr = createArray();
System.out.println(Arrays.toString(arr)); // 输出结果为[1, 2, 3]

在上面的例子中,我们定义了一个函数createArray,它返回一个int类型的数组,该数组的元素为1、2、3。在函数体内部,我们创建了一个int类型的数组并赋值,最后使用return关键字将该数组返回给调用者。

总结

以上是Java中函数参数传递和返回值的相关知识,需要注意的是,在Java中函数参数的传递方式是值传递,对象类型的变量传递的是对象引用的副本。函数的返回值可以是基本数据类型、引用类型或者数组类型的值。如果是引用类型或者数组类型的值,传递的是对象的引用,可以对对象进行修改。