Martin, I hope you don't mind, I am going to repeat what you just said.
A class is either (1) a top-level class or (2) a nested class.
If a class is a nested class, it is either (1) a member class, (2) a local class or (3) an anonymous class.
Member classes declared in classes are either non-static or explicitly declared static.
Member classes declared in interfaces are implicitly static.
Inner classes include non-static member classes, local classes and anonymous classes.
----
Definition: A nested class is any class whose declaration occurs within the body of another class or interface.
Definition: A top level class is a class that is not a nested class.
Definition: An inner class is a nested class that is not explicitly or implicitly declared static.
----
Beware: Some authors use the
word �inner� where the JLS uses the word �nested�.
Beware: Some authors use the terms �top-level nested� and �static inner�. These terms are not consistent with the usage of the JLS.