内联类(Inner class),静态内嵌类(static nested class)
主要区别:内联类可以访问定义在外围类(enclosing class)中的实例变量,而静态内嵌类不可以。
内联类式完全被封装在外围类中的。因为内联类可以引用外围类的实例变量,让其他代码有能力去创建内联类的实例式没有意义的。静态内嵌类可以被外部代码所使用,只要限定符不是private的,如Map.Entry。
静态内嵌类存在主要原因是:让其他类可以使用它,另外允许将其序列化。你不能序列化内联类对象,因为他们能够访问外围类的实例变量。要让序列化工作,序列化机制必须处理外围类的成员变量。