Mastering Advanced Language Features Part 1
Chapters 2 and 3 laid a foundation for learning the Java language. Chapter 4 builds onto this foundation by introducing you to some of Java's more advanced language features, specifically those features related to nested types, packages, static imports, and exceptions. Additional advanced language features are covered in Chapter 5.
Classes that are declared outside of any class are known as top-level classes. Java also supports nested classes, which are classes declared as members of other classes or scopes. Nested classes help you implement top-level class architecture.
There are four kinds of nested classes: static member classes, nonstatic member classes, anonymous classes, ...