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

final成员变量初始化

final成员变量初始化

zongge 2015-10-18 07:46:52
final修饰 的成员变量不能在初始化化之前访问,但是为什么加上一个this后就不报错了,输出为 0?程序如图
查看完整描述

3 回答

?
Jaydon_

TA贡献26条经验 获得超10个赞

很简单,作用域的问题。

查看完整回答
反对 回复 2015-10-19
?
天启之魂

TA贡献174条经验 获得超85个赞

this.age你输出的是对象中的age  因为你的age在定义的时候没有赋值 ,他在常量池中是没有值的 所以在创建对象的时候默认初始化为0, 你输出this.age就输出了0

你直接输出age 这个age是常量池中的age 但是因为没有值 所以报错,但是你给age赋值为56后  再就可以输出了

但是你赋值的是常量池中的age  ,this.age还是0


查看完整回答
反对 回复 2015-10-18
  • zongge
    zongge
    也就是说在常量池中一个 age 变量,创建对象的时候在堆内存中也会有一个 age 变量?
  • 天启之魂
    天启之魂
    实话这个不太清楚 ,我觉得应该是有的,但是这个age应该是指向常量池的age的,这个age只能被赋值一次,(默认初始化的不算)
  • 3 回答
  • 0 关注
  • 1539 浏览

添加回答

举报

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