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