静态内部类是什么?
静态内部类的作用是什么?
静态内部类的特别之处在哪里呢?(使用的目的)
静态内部类的具体使用实例

静态内部类时一个类中的类,而且这个类时静态的。

静态内部类的作用是:可以调用其包含的上一场类的private的变量和方法。

静态内部类的使用目的。

  1.在定义内部类的时候,可以在其前面加上一个权限修饰符static。此时这个内部类就变为了静态内部类。不过由于种种的原因,如使用上的限制等等因素(具体的使用限制,笔者在下面的内容中会详细阐述),在实际工作中用的并不是很多。但是并不是说其没有价值。在某些特殊的情况下,少了这个静态内部类还真是不行。如在进行代码程序测试的时候,如果在每一个Java源文件中都设置一个主方法(主方法是某个应用程序的入口,必须具有),那么会出现很多额外的代码。而且最主要的时这段主程序的代码对于Java文件来说,只是一个形式,其本身并不需要这种主方法。但是少了这个主方法又是万万不行的。在这种情况下,就可以将主方法写入到静态内部类中,从而不用为每个Java源文件都设置一个类似的主方法。这对于代码测试是非常有用的。在一些中大型的应用程序开发中,则是一个常用的技术手段。为此,这个静态内部类虽然不怎么常用,但是程序开发人员还必须要掌握它。也许在某个关键的时刻,其还可以发挥巨大的作用也说不定。 (笔者也不是很懂这段话的意思,但是根据我现在的知识来说应该是实际工作中将main方法写入静态内部类是可以节约内存的占用)

  2.具有更好的封装性:虽然内部类能够访问上层嵌套的类的私有属性,但是只能直接访问静态的私有属性,什么意思呢,就是虽然静态内部类被给予了访问private属性的权力,但是他依旧遵循java的静态基本语法,如果我们想要调用数据,那只能实例一个对象出来。这样的操作会让数据更好的封装起来。

  

  话不多说直接撂代码

   图一

java 静态内部类 非静态内部类 java静态内部类的使用场景_Java


图一中的代码是最外层的类,有静态方法,变量的有成员方法,变量。

图2

java 静态内部类 非静态内部类 java静态内部类的使用场景_Java_02


图3

java 静态内部类 非静态内部类 java静态内部类的使用场景_内部类_03


  图2中的是图一里的内部类。它可以直接调用上层类的static变量和方法,但是成员变量和方法必须遵从java基本语法规则。

  图4

java 静态内部类 非静态内部类 java静态内部类的使用场景_主方法_04


  图3 是与demo类平行的类,它不能够调用demo类中的private 方法。