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