3-10参数传递
来源:3-10 参数传递和类型检测
慕粉1110144175
2019-02-21 17:30:16
不太明白这里,参数传递,是把person的值赋给obj了,为什么在方法setName(obj)里面还会有个obj,在堆内存中存在还给分配了堆内存0bj={}(方法内第三行代码)?为什么不能理解为这个是给person分配的呢?
1回答
好帮手慕星星
2019-02-21
你好,
对象作为参数传递,相当于把person 的值赋值给了方法中的形参obj,可以理解为两个变量指向的是同一个地址,但是在方法中,给obj分配了一个新的地址,虽然是空对象,但是两个变量指向的地址也是不同的。
所以最后输出person.name的时候结果是改变指向地址之前设置的name值‘xm’。
可以再测试理解下,祝学习愉快!
相似问题