多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### [从多层嵌套类中访问外部类的成员](https://lingcoder.gitee.io/onjava8/#/book/11-Inner-Classes?id=%e4%bb%8e%e5%a4%9a%e5%b1%82%e5%b5%8c%e5%a5%97%e7%b1%bb%e4%b8%ad%e8%ae%bf%e9%97%ae%e5%a4%96%e9%83%a8%e7%b1%bb%e7%9a%84%e6%88%90%e5%91%98) 一个内部类被嵌套多少层并不重要——它能透明地访问所有它所嵌入的外部类的所有成员,如下所示: ~~~ // innerclasses/MultiNestingAccess.java // Nested classes can access all members of all // levels of the classes they are nested within class MNA { private void f() {} class A { private void g() {} public class B { void h() { g(); f(); } } } } public class MultiNestingAccess { public static void main(String[] args) { MNA mna = new MNA(); MNA.A mnaa = mna.new A(); MNA.A.B mnaab = mnaa.new B(); mnaab.h(); } } ~~~ 可以看到在**MNA.A.B**中,调用方法`g()`和`f()`不需要任何条件(即使它们被定义为**private**)。这个例子同时展示了如何从不同的类里创建多层嵌套的内部类对象的基本语法。"**.new**"语法能产生正确的作用域,所以不必在调用构造器时限定类名。