1.类声明为static的为静态成员类,静态成员类可访问外部类的任一静态字段或静态方法,静态成员类有public/private/default权限修饰符,静态成员类不能与外部类重名,不能直接访问外部类的实例字段和实例方法,静态成员类只能定义于外部类的顶层代码或外部类其它静态成员类的顶层代码中(嵌套定义);不能定义于外部类的某个函数中 。
2.类声明不为static为成员类,static对inner interface时内含的(implicit)的。
3.对一个静态成员类,去掉其声明中的“static”关键字,将其定义移入其外部类
的静态方法或静态初始化代码段中就成为了局部静态成员类,局部类能且只能访问其所属代码段中的声明为final的局部变量。
4.没有类名的局部类就是匿名类。用一条语句完成匿名类的定义与实例创建。匿名类是一种特殊的局部类。局部类的特性与约束都适用与它。