An inner class is a nested class that is not explicitly or implicitly declared static. Inner classes may not declare static initializers or member interfaces. Inner classes may not declare static members, unless they are compile-time constant fields.A local class is a nested class that is not a member of any class and that has a name. All local classes are inner classes.An anonymous class declaration is automatically derived from a class instance creation expression by the compiler.A member class is a class whose declaration is directly enclosed in another class or interface declaration. Similarly, a member interface is an interface whose declaration is directly enclosed in another class or interface declaration. class | +------------+------------+ | | top-level class nested class | +----------------------+----------+ | | inner class static member clsss | +---------------+-----------+--------------------------+ | | | non-static member class local class anonymous class 所有类: 顶层类:不在任何类之内的类。默认在包内可见,若是public的则包外可见,但必须占用自己的Compilation Unit。顶层类不能用其他修饰符。 内嵌类:处于某类之内的类。其外层的类是该类的信封类。 成员类:是内嵌类,但不在其信封类的任何方法/块中。仅该种类可用protected或private修饰 静态成员类:是成员类,有static修饰。 非静态成员类:是成员类,无static修饰。 本地类:是内嵌类,且在其信封类的某方法/块中。 class | +------------+------------+ | | top-level class nested class | +----------------------+-------------------------------+ | | member class local clsss | | +---------------+-----------+ +------------------+---+ | | | | non-static member class static member clsss named class anonymous class
static. Inner classes may not declare static initializers or member interfaces.
Inner classes may not declare static members, unless they are compile-time
constant fields.A local class is a nested class that is not a member of any class and that has a
name. All local classes are inner classes.An anonymous class declaration is automatically derived from a class instance
creation expression by the compiler.A member class is a class whose declaration is directly enclosed in another class
or interface declaration. Similarly, a member interface is an interface whose declaration
is directly enclosed in another class or interface declaration. class
|
+------------+------------+
| |
top-level class nested class
|
+----------------------+----------+
| |
inner class static member clsss
|
+---------------+-----------+--------------------------+
| | |
non-static member class local class anonymous class
所有类:
顶层类:不在任何类之内的类。默认在包内可见,若是public的则包外可见,但必须占用自己的Compilation Unit。顶层类不能用其他修饰符。
内嵌类:处于某类之内的类。其外层的类是该类的信封类。
成员类:是内嵌类,但不在其信封类的任何方法/块中。仅该种类可用protected或private修饰
静态成员类:是成员类,有static修饰。
非静态成员类:是成员类,无static修饰。
本地类:是内嵌类,且在其信封类的某方法/块中。 class
|
+------------+------------+
| |
top-level class nested class
|
+----------------------+-------------------------------+
| |
member class local clsss
| |
+---------------+-----------+ +------------------+---+
| | | |
non-static member class static member clsss named class anonymous class