Java 形参 实参
在Java中,形参和实参是两个重要的概念,它们分别指形式参数和实际参数。
- 形参:形式参数是在方法定义时用于接收调用该方法时传递的参数。它只在方法内部有效,方法结束后就消失了。
- 实参:实际参数是在调用方法时传递给方法的参数,它可以是常量、变量、表达式、或者方法的返回值。
下面是一个简单的Java程序,演示了如何使用形参和实参:
public class ParamExample {
// 定义一个方法,该方法有一个形式参数
public static void printMessage(String message) {
System.out.println(message);
}
public static void main(String[] args) {
// 调用printMessage方法,并传递一个实际参数
printMessage("Hello, World!");
}
}
java参数传递
在Java中,实参和形参传递主要有两种方式:按值传递(by value)和按引用传递(by reference)。
- 按值传递:
在这种情况下,传递给方法的是参数值的副本。因此,方法内部对参数值的改变不会影响原始值。
public void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
int x = 10;
int y = 20;
swap(x, y);
System.out.println("x = " + x + ", y = " + y); // 输出将会是x = 10, y = 20,因为swap方法内部的改变没有影响到x和y
}
- 按引用传递:
在Java中,对象和数组是通过引用传递的。传递的是对象的引用(内存地址),而不是对象本身的值。因此,方法内部的改变会影响原始对象。
public void update(User user, int age) {
user.setAge(age);
}
public static void main(String[] args) {
User user = new User("Alice", 25);
update(user, 30);
System.out.println(user.getAge()); // 输出将会是30,因为update方法改变了user对象的age属性
}
在上述例子中,User
对象的引用被传递到 update
方法中,所以方法内部的改变会影响到原始的 user
对象。
需要注意的是,基本数据类型(如 int
, float
, double
等)按值传递,而对象按引用传递。如果希望方法内部的改变不影响原始对象,可以在方法内部创建对象的新实例并修改它,然后返回新实例。这种情况下,虽然传递的是引用,但是方法内部操作的是新创建的对象,不会影响原始对象。