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的参数传递方式包括按值传递和引用传递,可以通过形式参数的值或者引用地址来获取传递进来的参数值。当按引用传递的参数是对象时,可以通过对象的成员变量来获取参数值。
