在下面代码中,并没有达到交换两个对象的效果
输出结果是3:4
按理来说,java中不都是引用吗,应该可以直接交换对象啊!
请解释一下我的错误,并给出解决办法。
我希望输出结果为4:3
class Int
{
public int x;
}
public class Hello {
void swap(Int a,Int b)
{
Int t=a;
a=b;
b=t;
}
public static void main(String[] args) {
Hello hello=new Hello();
Int a=new Int();
Int b=new Int();
a.x=3;
b.x=4;
hello.swap(a,b);
System.out.println(a.x+":"+b.x);
}
}
在Java世界中函数或者叫方法的入参都是通过值拷贝的方式进行传递:
正常来说,java不能实现。
并且int对象内部
private final int value;
是final的