重要:非静态内部类持有外部类的引用。
是否拥有静态成员(属性,方法):
非静态内部类不可以有静态成员,静态内部类可以。
访问外部类的成员区别
静态内部类只能直接访问外部类的静态成员,而非静态内部类可以访问外部类的所有成员。
类的声明区别
静态内部类的声明不依赖外部类,而非静态内部类需要先有外部类,之后才能new。
# 静态内部类
OutClass.InnerClass innerClass = new OutClass.InnerClass();
# 非静态内部类
OutClass.InnerClass innerClass = new OutClass().new InnerClass();