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()的简写
}
}