1. public class DotThis {
    2. void f() {
    3. System.out.println("DotThis.f()");
    4. }
    5. public class Inner {
    6. public DotThis outer() {
    7. return DotThis.this;
    8. }
    9. }
    10. public Inner inner() {
    11. return new Inner();
    12. }
    13. public static void main(String[] args) {
    14. DotThis dt = new DotThis();
    15. DotThis.Inner dti = dt.inner();
    16. dti.outer().f();
    17. }
    18. }
    19. 输出:
    20. DotThis.f()
    1. public class DotNew {
    2. public class Inner{}
    3. public static void main(String[] args) {
    4. DotNew dn = new DotNew();
    5. // Inner dni = new Inner(); //不能从静态上下文中引用
    6. DotNew.Inner dni =(new DotNew()).new Inner(); //也可以是这样写
    7. DotNew.Inner dni2 = dn.new Inner();//外部返回类型.内部返回类型 dni = 外部实例引用.内部实例
    8. }
    9. }