Static Nested Class 和 Inner Class 的不同?

参考解答

静态内部类依赖于外部类的 类对象

成员内部类依赖于外部类的 实例对象

public class Test27 {
  public static void main(String[] args) {
    A a1 = new A("张三");
    a1.a();
    A a2 = new A("李四");
    a2.a();
  }
}

class A {
  private static String CLASSNAME = "ClassName";
  private String name;
  public A(String name) {
    this.name = name;
  }
  private static class B {
    public void b() {
      // 只能访问静态变量
      System.out.println(CLASSNAME);
    }
  }
  private class C {
    public void c() {
      // 可以访问成员变量,也可以访问静态变量
      System.out.println(name); 
    }
  }
  public void a() {
    new B().b(); // 调用静态内部类方法,是new A.B().b()的简写
    new C().c(); // 调用成员内部类方法,是this.new C().c()的简写
  }
}

results matching ""

    No results matching ""