Java函数的参数传递方式与使用示例
Java中的参数传递方式共有两种:值传递和引用传递。在本文中,我们将介绍这两种参数传递方式,并通过示例代码来展示它们的使用。
一、值传递
1. 概述:
值传递是指将实参的值复制一份传递给形参,形参的改变不会影响实参的值。 Java中,基本数据类型和字符串类型的参数传递方式都是值传递。
2. 示例:
以下示例展示了值传递的使用方式:
//定义一个方法,参数为int类型
public static void add(int a){
a++;
System.out.println("方法内a值为:" + a);
}
public static void main(String[] args) {
int a = 10;
add(a);
System.out.println("方法外a值为:" + a);
}
输出结果为:
方法内a值为:11
方法外a值为:10
从上述代码中可以看出,add方法内部对形参a的值进行了修改,但是在方法外部,a的值仍然是原来的10,说明值传递不会修改原始值。
二、引用传递
1. 概述:
引用传递是指将实参的地址传递给形参,形参对实参进行修改会影响实参的值。在Java中,除了基本数据类型和字符串类型之外的所有类型都是引用类型。
2. 示例:
以下示例展示了引用传递的使用方式:
class Person{
public int age;
public String name;
}
public class Main {
//定义一个方法,参数为Person类型
public static void changePerson(Person p){
p.age = 20;
p.name = "张三";
System.out.println("方法内p值为:" + p.age + " " + p.name);
}
public static void main(String[] args) {
Person p = new Person();
p.age = 10;
p.name = "李四";
changePerson(p);
System.out.println("方法外p值为:" + p.age + " " + p.name);
}
}
输出结果为:
方法内p值为:20 张三
方法外p值为:20 张三
从上述代码中可以看出,changePerson方法内部对形参p的值进行了修改,同时实参p的值也被修改了,说明引用传递可以修改原始值。
总结:
在Java中,参数传递方式一定要根据实际情况选择合适的方式。如果是基本数据类型或字符串类型,就应该选择值传递;如果是复杂对象类型,就应该选择引用传递。在使用过程中,要清楚两种传递方式的特点,避免出现不必要的错漏。
