内部类可以引用他包含类的成员吗?有没有什么限制?

参考解答

内部类是为了实现“信息隐藏”而引入的,原则上它用来访问外部类的field和方法,无论私有还是公有。具体限制规则如下:

类型 外部类field 外部类静态field 外部类方法 外部类静态方法 方法内final局部变量
成员内部类 -
静态内部类 - - -
成员方法内局部内部类和匿名内部类
静态方法内局部内部类和匿名内部类 - -

总结 静态的只能访问外部静态的变量或方法,非静态的可以访问外部的所有变量或方法

注意

  • 局部内部类和匿名内部类访问方法内局部变量时要求该变量必须为final
  • jdk8可以省略final关键字,但该变量的值或引用仍不能被修改跟加了final行为一样。

results matching ""

    No results matching ""