在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的值,因为它们都引用了同一个对象。