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

在内部类中访问外部类成员时,为什么要加这个this

在之前的学习中,我一直认为可以通过路径访问指定成员,

在In这个内部类中,通过Out访问外部类Out中的a变量,课程教过"."类似于文件夹中的"/",

Out.a不可以直接访问"位于外部类Out中的成员a"吗?

按照我上面的理解,Out.this.a <=> Out.In.a,那岂不是错误?


再者,课程2-4中讲道this代表当前对象,

编写"Out.this.a"语句时是在In内部类中,this不是指向了In这个内部类了吗,那和初衷背道而驰阿


怎么都理解不同,为什么要加这个this


Ps:我知道一定是我哪里理解错了,已经通过代码自行测试过了,

就是不知道我的理解错在哪里,真的困惑,求解答

咖喱炒饭
浏览 1348回答 2
2回答

FredZeng

Out.this.a 表示当前对象中的数据a (即每个Out对象都有不同的a);Out.a 即 类.a 的调用方法,相当于获取的是 static 对象或数据 (即每个对象中的a是一样的)此外,如果是内部类获取外部类成员,可以直接 a (前提是 a 和 内部类中的成员命名不冲突)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java