定义在一个类内部的类,叫作“嵌套类”。嵌套类分为两种:static的和非static的。后者又有一个专门的名字,叫作“内部类”。所以从概念可以看出,嵌套类跟内部类是所属关系,后者包含于前者。示例代码如下:
class OuterClass { ... static class StaticNestedClass { ... } class InnerClass { ... } }
同时,嵌套类是其所在类的成员。内部类可以访问所在类的所有成员,即使该成员是private的。而static嵌套类则不得访问所在类的成员。同时,嵌套类,static和非static的,都可以被声明为private、public、protected和default的。
【为什么要使用嵌套类】
好处应该都比较文本化吧,以后在使用的过程中去理解和体会吧:对只在一个地方使用的类进行逻辑上的分组;增加了封装性;易于阅读和维护。
【static嵌套类】
因为static嵌套类不能直接访问所在类的非static成员变量和方法,所以static嵌套类必须通过绑定所在类的实例来进行访问。而对于所在类的静态成员和方法包括private、protected和public的,可以访问。因为它也有static修饰。
static嵌套类通过写出封装的类名来进行实例化和访问其内部成员:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
转自:百度问答^_^