1> 公有public
class MyValue {
public int Val;
}
public class Testdemo {
//实现交换两个变量的值(要求:需要交换实参的值)
public static void swap(MyValue myValue1,MyValue myValue2){
int tmp = myValue1.Val;
myValue1.Val = myValue2.Val;
myValue2.Val = tmp;
}
public static void main(String[] args) {
MyValue myValue1 = new MyValue();
myValue1.Val = 10;
MyValue myValue2 = new MyValue();
myValue2.Val = 20;
System.out.println(myValue1.Val);
System.out.println(myValue2.Val);
System.out.println("交换后:");
swap(myValue1,myValue2);//传的是对象的引用
System.out.println(myValue1.Val);
System.out.println(myValue2.Val);
}
下图说明swap在交换时的具体操作
2>一般来说。无特殊要求,属性都设置为私有private
class MyValue {
private int Val;//如果写为私有的就需要提供get和set方法
public int getVal() {
return Val;
}
public void setVal(int val) {
this.Val = val;
}
}
public class Testdemo {
//实现交换两个变量的值(要求:需要交换实参的值)
public static void swap(MyValue myValue1,MyValue myValue2){
int tmp = myValue1.getVal();
myValue1.setVal(myValue2.getVal());//Val是私有的,所以需要get才能得到
myValue2.setVal(tmp);
}
public static void main(String[] args) {
MyValue myValue1 = new MyValue();
myValue1.setVal(10);
MyValue myValue2 = new MyValue();
myValue2.setVal(20);
System.out.println(myValue1.getVal());
System.out.println(myValue2.getVal());
System.out.println("交换后:");
swap(myValue1,myValue2);
System.out.println(myValue1.getVal());
System.out.println(myValue2.getVal());
}