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

为什么是Out.this.a而不是Out.a

为什么是Out.this.a而不是Out.a

咖喱炒饭 2017-01-23 22:37:47
在内部类中访问外部类成员时,为什么要加这个this在之前的学习中,我一直认为可以通过路径访问指定成员,在In这个内部类中,通过Out访问外部类Out中的a变量,课程教过"."类似于文件夹中的"/",Out.a不可以直接访问"位于外部类Out中的成员a"吗?按照我上面的理解,Out.this.a <=> Out.In.a,那岂不是错误?再者,课程2-4中讲道this代表当前对象,编写"Out.this.a"语句时是在In内部类中,this不是指向了In这个内部类了吗,那和初衷背道而驰阿怎么都理解不同,为什么要加这个thisPs:我知道一定是我哪里理解错了,已经通过代码自行测试过了,就是不知道我的理解错在哪里,真的困惑,求解答
查看完整描述

2 回答

已采纳
?
FredZeng

TA贡献48条经验 获得超6个赞

Out.this.a 表示当前对象中的数据a (即每个Out对象都有不同的a);

Out.a 即 类.a 的调用方法,相当于获取的是 static 对象或数据 (即每个对象中的a是一样的)

此外,如果是内部类获取外部类成员,可以直接 a (前提是 a 和 内部类中的成员命名不冲突)

查看完整回答
1 反对 回复 2017-01-23
  • 2 回答
  • 0 关注
  • 1342 浏览

添加回答

举报

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