swap
class TestSwap
{
public static void swap(int a,int b){
int t=a;
a=b;
b=t;
}
public static void main(String args[]){
int x=2;
int y=3;
swap(x,y);
System.out.println(x);
}
}
这样的程序交换顺序后交换的结果不是保存不下来吗,怎样才能让x和y的值交换呢让输出结果为3呢
------解决方案--------------------[code=Java][/code]
public class TestSwap {
public static void main(String args[]) {
Integer a=new Integer(2);
Integer b=new Integer(3);
ObjectChange ob=new ObjectChange(a,b);
ob.change();
System.out.println("a= "+a.intValue()+" b="+b.intValue());
System.out.println("a= "+ob.getA()+" b="+ob.getB());
}
}
class ObjectChange{
private Integer a;
private Integer b;
public ObjectChange(Integer a, Integer b) {
super();
this.a = a;
this.b = b;
}
public Integer getA() {
return a;
}
public void setA(Integer a) {
this.a = a;
}
public Integer getB() {
return b;
}
public void setB(Integer b) {
this.b = b;
}
public void change(){
Integer temp;
temp=a;
a=b;
b=temp;
}
}
------解决方案--------------------Java中传参的方式是传值不传址,要实现swap函数也不是不可能,但很繁琐,最终写出的代码已经偏离这个函数的初衷
难怪有人戏称:“伟大的java就这么否决了swap函数”
------解决方案--------------------一般就使用数组方式,或者写一个辅助类,挺麻烦的.