小白提问:一个Java简单程序

为什么调用swap1方法后不会调换呢??我在main方法中赋值那3条语句又能成功调换??好疑惑啊!!

可是问题是什么 0.0
分析的话,swap1达不到交换的效果,子函数中对引用也是采用值传递,新建一个引用副本来指向传入的对象,这里只是把子函数中引用指向的目标交换,对主函数中的引用不造成影响
swap2可以完成交换

Circle 对象作为参数时 会被copy 一份 再进行操作 所以你交换的只是副本 在main 函数中你操作交换的是本体 所以可以

传进来的确实是地址,x和y也确实调换了(可以在swap1方法中加一条输出语句证明),但x和y与circle1和circle2是不同的引用

也就是说 x和y调换了 但跟circle1和circle2没有影响

我在电脑上运行一下试试。。。。。。。。。。。

图片说明