Definition:
A class within
another class
Example:
class EnclosingClass
{
...
class ANestedClass
{
...
}
}
Purpose:
Reflect and enforce the relationship
between two classes. (esp. in the scenarios that the nested class makes sense only in the context of
its enclosing class or when it relies on the enclosing class
for its functionthe nested class makes sense only in the context of
its enclosing class or when it relies on the enclosing class
for its function)
Interesting features:
1. An instance of
InnerClass
can exist only within an instance of
EnclosingClass
2. InnerClass instance has direct access to the instance variables and
methods of its enclosing instance.
3. two special kinds of inner classes:
local classes and anonymous classes
reference:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html