具我们所知,类中就只存在,成员变量和方法,那为什么还会出现内部类,这明显是违背了,不过他已经出现,而且是不惜违背类的定义出现,必有他过人之处,那他的过人之处是什么呢?
内部类就是只能依附于外部类而存在的类,就跟病毒与宿主的关系一样。个人理解可以不区分内部类和外部类,统一定义为public类也没有问题。但是内部类提出的意义就是,该类只有在外部类的概念下才有意义。例如HashMap类的Entry,Entry类只有对HashMap类才有意义,它单独存在就没有意义了。
如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。java中的内部类和接口加在一起,可以很好的实现多继承的效果。
java内部类的使用小结http://android.blog.51cto.com/268543/384844/
个人感觉内部类通常在对外部类有很明确的相互依赖关系,或仅希望对所在的外部类或方法(匿名类)提供服务时经常选择的方案。过人之处的话,在于方便、灵活,实现了功能但又不破坏整体的代码结构。