The classes that I’ve presented to this point are known as top-level classes. They don’t belong to another class or structure. However, Java also lets you declare classes in other classes, blocks (groups of zero or more statements between { and } characters), and expression contexts.
Classes declared in other classes are known as nested classes. There are two kinds of nested classes: static classes and non-static classes. (Non-static classes are also known as inner classes).
The Java Tutorials ...