在内部类中访问外部类成员时,为什么要加这个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 和 内部类中的成员命名不冲突)
添加回答
举报
0/150
提交
取消