为了账号安全,请及时绑定邮箱和手机立即绑定

方法传对象参数 改变不了引用 懵...求大神

方法传对象参数 改变不了引用 懵...求大神

MM们 2019-03-27 17:14:45
执行方法后不应该对象a ,b的指向交换吗?求指点!!!public class Text16 {    public static void main(String[] args) {        Circle a = new Circle(1);        Circle b = new Circle(2);        method(a,b);        System.out.println("一、a半径:"+a.radius+",b半径:"+b.radius);    }    public static void method(Circle x,Circle y){        Circle tmp = x;        x = y;        y = tmp;    }    }class Circle{    double radius;    Circle(double x){        radius = x;    }}
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

java在函数参数传递上和C一致,都是"值传递"。只是在java中一个new出来的类得到的是一个引用,所以传的就是引用的值而已,实参是形参的一个引用值得拷贝,交换拷贝,形参并没有交换。


查看完整回答
反对 回复 2019-04-25
?
DIEA

TA贡献1820条经验 获得超2个赞

这道题的关键点其实是关于Java中Swap()方法的问题。Java中实现Swap的方式,有点复杂,只能通过返回值。


查看完整回答
反对 回复 2019-04-25
  • 2 回答
  • 0 关注
  • 464 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信