淘先锋技术网

首页 1 2 3 4 5 6 7

在Java编程中,方法参数可以通过值传递(也称为“直传递”)或引用传递(也称为“地址传递”)方式传递到方法中。

// 值传递示例
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a, b);
System.out.println("a = " + a + ", b = " + b); // 输出 a = 10, b = 20
}
public static void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
}

上面的代码演示了值传递的情况。在方法swap中,x和y是局部变量,它们存储了a和b的副本。当我们调用swap(a, b)时,方法参数a和b的值被复制到x和y中,因此对x和y的操作不会影响a和b的值。

// 引用传递示例
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person("Tom");
Person p2 = new Person("Jerry");
swap(p1, p2);
System.out.println("p1.name = " + p1.name + ", p2.name = " + p2.name); // 输出 p1.name = Jerry, p2.name = Tom
}
public static void swap(Person x, Person y) {
String temp = x.name;
x.name = y.name;
y.name = temp;
}
}

上面的代码演示了引用传递的情况。在方法swap中,x和y是对象的引用,它们存储了p1和p2对象的地址。当我们调用swap(p1, p2)时,方法参数x和y的值被复制到p1和p2的引用中,因此对x和y的操作将影响到p1和p2的值,因为它们都引用了同一个对象。