我知道,在 Java 中,参数传递是通过原始类型的值和引用类型(对象)的引用进行的。为什么在下面的例子中,我认为是引用传递参数,方法交换后没有修改对象点?
public class Swap2 {
public static void swap(Point p1, Point p2) {
Point temp = p1;
p1 = p2;
p2 = temp;
System.out.println("p1.x " + p1.x);
System.out.println("p2.x " + p2.x);
}
/**
* @param args
*/
public static void main(String[] args) {
Point p1 = new Point(100,200);
Point p2 = new Point(300,400);
//System.out.println("p1=" + p1.toString());
System.out.println("p1=" + p1);
System.out.println("p2=" + p2);
swap( p1, p2 );
System.out.println("p1.x " + p1.x);
System.out.println("p1=" + p1);
System.out.println("p2=" + p2);
}
}
Run Code Online (Sandbox Code Playgroud)