Classes that are declared outside of any class are top-level classes. Nested classes are classes declared as members of other classes or scopes.
There are four kinds of nested classes:
static member classes,
nonstatic member classes,
anonymous classes
local classes.