访问内部类中的外部类变量

基兰:

在内部类中,可以访问外部类的变量,但不能访问方法的局部变量。我理解了有关方法的局部变量不可访问的部分,但我想知道为什么外部类变量可访问?

我的理解是,由于内部类与外部类绑定,因此只要父级可用,子级就可以访问其父级变量。我对么?

纳米法拉

假设您的外部类Outer在内部类的范围内(非静态)被称为Outer.this.foo以获取该字段。

例如,

Outer.this.foo=new ArrayList<>();

其中,外层是类的名称,并foo标识该字段。

您也可以直接抓取它,foo=new Baz()但是如果由于阴影导致命名冲突,它将选择内部字段。

如果它是静态内部类,则需要一个显式实例:

outerInstance.foo=new ArrayList<>();

或者如果要访问的字段是静态的,请照常使用以下命令进行访问:

Outer.staticFoo=new ArrayList<>();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章