采用引用类型参数改变两个变量的值
package change.lkf;
public class Cfunction {
c int x=3;
static int y=5;
// public static void Change(Cfunction cf){//引用类型的参数
// int temp=cf.x;
// cf.x=cf.y;
// cf.y=temp;
// }
public static void swap(Swap s1,Swap s2){
//1.下面的代码不能交换原本两个变量的值
/*Swap temp=s1;
s1=s2;
s2=temp;*/
//2.使用第二种方法可以
//之间改变的是属性值,改变的不是地址
int temp=s1.getNumber();
s1.setNumber(s2.getNumber());
s2.setNumber(temp);
}
public static void main(String[] args){
Swap s1=new Swap(5);
Swap s2=new Swap(10);
System.out.println("初始时:"+s1.getNumber()+","+s2.getNumber());
swap(s1, s2);
System.out.println("调用函数后:"+s1.getNumber()+","+s2.getNumber());
// Cfunction cf=new Cfunction();
// System.out.println("初始时:"+"x="+x+","+"y="+y);
Change(cf);
//
// System.out.println("调用函数后:"+"x="+x+","+"y="+y);
}
}
控制台输出
初始时:5,10
调用函数后:10,5