The main feature of an inner class is its capability to access even private members of the outer class. Inner classes were included in java, (after many altercated discussions I guess) to enhance inter class ties. There might be a case when your class is specific enough to deserve an entirely new type, but on the other hand, it is tightly coupled with another class. In this condition, inner classes can be used. Though, they have their own limitations. Please refer the documentation on the link specified above.
Sid,

[ May 03, 2007: Message edited by: Sidd Kulk ]