[问题] 传物件问题

楼主: ptt0720 (湿湿)   2017-12-24 03:02:26
大家都知道java传物件是传参考
但是刚才遇到一个问题
我把某个物件c1传到某个方法A 在A里面把另外一个同型态的物件assignment给c1(不是物件成员 是整个物件)
但是在原本呼叫A的方法中c1还是c1
物件的成员可以这样子assignment
但是今天才知道整个物件不能这样子assignment
想请问有人知道在java内部是如何运作的吗
(怕观念有误马上用手机问一下 如果不明白的话我会在补上code)
作者: ssccg (23)   2017-12-24 03:23:00
java传物件不是传参考,是复制一份参考(在C/C++中叫指标的)方法中的变量(不论数值类型还是参考类型)怎么改都不影响呼叫的地方
楼主: ptt0720 (湿湿)   2017-12-24 03:39:00
但是我在方法中改物件的成员变量 实际上也被改变了
作者: ssccg (23)   2017-12-24 03:56:00
物件的成员变量是物件的成员变量,不是方法的区域变量
作者: jej (晃奶大馬桶)   2017-12-24 06:43:00
http://javadude.com/articles/passbyvalue.htm你给的那个已经是另一个instance
作者: pttworld (批踢踢世界)   2017-12-24 07:38:00
想像手中本来有个箭头指某一物件,换指另一物件。
作者: LPH66 (-6.2598534e+18f)   2017-12-24 12:48:00
接楼上的比喻, 函式外的箭头跟函式内的箭头不是同一个
楼主: ptt0720 (湿湿)   2017-12-26 02:26:00
懂了 谢谢各位

Links booklink

Contact Us: admin [ a t ] ucptt.com