💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### [从多层嵌套类中访问外部类的成员](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**"语法能产生正确的作用域,所以不必在调用构造器时限定类名。