public void swap(Point var1, Point var2)
{
var1.x = 100;
var1.y = 100;
Point temp = var1;
var1 = var2;
var2 = temp;
}
public static void main(String [] args)
{
Point p1 = new Point(0,0);
Point p2 = new Point(0,0);
System.out.println("A: " + p1.x + " B: " +p1.y);
System.out.println("A: " + p2.x + " B: " +p2.y);
System.out.println(" ");
swap(p1,p2);
System.out.println("A: " + p1.x + " B:" + p1.y);
System.out.println("A: " + p2.x + " B: " +p2.y);
}
コードを実行すると、次のようになります。
A: 0 B: 0
A: 0 B: 0
A: 100 B: 100
A: 0 B: 0
関数が値渡し時にp1の値をどのように変更するかを理解しています。私が得られないのは、p1とp2のスワップが失敗した理由です。