java语言允许在一个类中定义另一个类,这种类叫nested class(嵌套类)。
嵌套类是外部类的一个成员,可以定义为private, public, protected, package private类型。
嵌套类分为两种static和non-static:
non-static的嵌套类(也叫inner class)允许访问类的其他成员,包括private类型的成员;non-static的嵌套类是与外部类的对象相联系的。
static的嵌套类不允许访问其他成员;static的嵌套类是与外部类相联系的;要访问外部类的成员,必须通过外部类的引用访问。
使用嵌套类的理由:
一种将只在一个地方使用的类逻辑分组的方式,如果一个类只对另一个类有用,逻辑上要把它嵌入到另一个类中,成为帮助类。
增加封装,如果class B要访问class A中必须设置为private的成员,将class B放到class A中就可以实现。
嵌套类可以获得更好的可读性和可维护性的代码,嵌套类能让代码离使用它的地方很近。