在java中如何实现两个整形值的交换
我用了3种方式试验,都没有成功,请高手指点
1,直接写函数交换
change(int a,int b)
{
int c;
c = a;
a = b;
b = c;
}
不行,而且我知道肯定不行.因为是传值方式,而不是传址方式.
2,用原子数据包装类来实现.
change(Integer a,Integer b)
{
Integer c;
c = a;
a = b;
b = c;
}
但是结构还是不行,我怀疑是因为是因为原子数据包装类的不可改变性造成的.
于是我又试验了第三种方法.
3,创建一个对象,对象中保存着数值,然后交换两个对象.
class A
{
int a;
public void setA(int a)
{
this.a = a;
}
public int getA()
{
return this.a;
}
};
class Test
{
public static void change(A a,A b)
{
A c;
c =a;
a = b;
b = c;
}
public static void main(String[] args)
{
A a = new A();
A b = new A();
a.setA(12);
b.setA(14);
change(a,b);
System.out.println("a is "+a.getA()+",b is "+b.getA());
System.out.println("Hello World!");
}
}
但是结果输出却是 :
a is 12,b is 14
----------------
这是为什么,请大虾帮助一下!