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

基础问题。

基础问题。

慕虎4328570 2017-07-31 16:35:57
ta[2]之前的area值是null,为什么输出的t5 的area值是343
查看完整描述

2 回答

已采纳
?
慕工程2701759

TA贡献16条经验 获得超17个赞

t5和ta[2]都是引用类型,t5=ta[2],使得t5和ta[2]都指向同一个内存空间(一个实例对象的存储空间),你通过ta[2]修改了那个空间存储的值。也是修改了t5。相当于一个对象不同名字。还有你,居然让我倒着看图。//img1.sycdn.imooc.com//597fdddf000179ab06150201.jpg

查看完整回答
2 反对 回复 2017-08-01
  • 慕虎4328570
    慕虎4328570
    还是有点不太懂
  • 其实你蛮中二的
    其实你蛮中二的
    这个意思就是你有一个盒子,开始给他取名字叫做ta[2],之后又给他取名字叫t5,你在这个盒子里放入东西,要去拿东西的时候,可以说到ta[2]的盒子里拿东西。也可以说到t5的盒子里拿东西
  • 慕虎4328570
    慕虎4328570
    那么他们所指向的实例对象的名字是什么?是ta[2]还是t5还是其他?
点击展开后面3
?
这是一个很酷的昵称

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

因为你在 t5=ta[2]之后,又修改了ta[2]的值,那么t5的area值也随之改变,让它等于了343,所以后来输出t5的area值是343,至于为什么随之改变,楼主可以试着将Java中的引用与C中指针对比中理解

查看完整回答
2 反对 回复 2017-07-31
  • 慕虎4328570
    慕虎4328570
    那int x=1 int y=x int x=2 输出的y 为什么等于1
  • 这是一个很酷的昵称
    这是一个很酷的昵称
    因为这里你定义的x,y是int类型,Java中基本数据类型,在int y=x之后,就相当于y=1;而y与x再没有关系,所以x的值再改变也不会影响y的值,而图片中t5,ta[2]都是引用类型的,建议楼主可以好好理解一下Java中的引用类型,望采纳.
  • 2 回答
  • 0 关注
  • 1658 浏览

添加回答

举报

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