The document discusses different types of inner classes in Java:
1. Member classes are classes declared within another class and have access to all members of the outer class, even private ones. They cannot contain static members.
2. Local classes are declared within a method, constructor or block. They can only access final variables and methods of the outer class.
3. Anonymous classes are defined and instantiated in a single expression without a class name. They are commonly used as event handlers in GUI code.