在学习java的传递机制时遇到的问题,需求是交换两个数值位置,关于结果甚是不解
第一种情况:当方法交换两个形参后,上下都输出值不同
int m = 10;
int n = 20;
ValueTrans test = new ValueTrans();
test.swap(m,n);
System.out.println(m+","+n);//20,10
}
public void swap(int i, int j){
int temp = i;
i = j;
j = temp;
System.out.println(i+","+j);//10,20
}
第二种情况:当只显示方法时,输出的结果对的
int m = 10;
int n = 20;
ValueTrans test = new ValueTrans();
test.swap(m,n);
}
public void swap(int i, int j){
int temp = i;
i = j;
j = temp;
System.out.println(i+","+j);//20,10
}
第三种情况:当只显示对象调用结果时,输出的结果是错的
int m = 10;
int n = 20;
ValueTrans test = new ValueTrans();
test.swap(m,n);
System.out.println(m+","+n);//10,20
}
public void swap(int i, int j){
int temp = i;
i = j;
j = temp;
}
这三种情况分别该如何理解呢?