class MyValue {
public int val;
}
public class Test {
public static void swap(MyValue myV1, MyValue myV2) {
int tmp = myV1.val;
myV1.val = myV2.val;
myV2.val = tmp;
}
public static void main(String[] args) {
MyValue myValue1 = new MyValue();
myValue1.val = 10;
MyValue myValue2 = new MyValue();
myValue2.val = 20;
swap(myValue1, myValue2);
System.out.println(myValue1.val);
System.out.println(myValue2.val);
}
}
打印结果:
图解:
当将class MyValue 中的 public int val 改成 private int val,代码修改如下:
class MyValue {
private int val;
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
}
public class Test {
public static void swap(MyValue myV1, MyValue myV2) {
/*int tmp = myV1.val;
myV1.val = myV2.val;
myV2.val = tmp;*/
int tmp = myV1.getVal();
myV1.setVal(myV2.getVal());
myV2.setVal(tmp);
}
public static void main(String[] args) {
MyValue myValue1 = new MyValue();
myValue1.setVal(10);
MyValue myValue2 = new MyValue();
myValue2.setVal(20);
swap(myValue1, myValue2);
System.out.println(myValue1.getVal());
System.out.println(myValue2.getVal());
}
}