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.
There was a time in the history of
Java when people used the
word �inner� class for both the static and the non-static kind. With the second edition of the JLS, inner classes are non-static.
This is how the JLS defines these terms. Some exam prep books have different meanings for these words.