有没有必要在java中将类声明为静态?

时间:2014-01-21 18:37:37

标签: java java-ee

我想知道是否有一些情况我们必须在java中将类声明为静态。我真的不想在java中声明一个静态类。

提前感谢,

2 个答案:

答案 0 :(得分:4)

java中的外部类不能是静态的。静态类的用例是内部类。例如:

public class OuterClass {

    static class InnerClass { }

}

如果内部类没有引用外部类中的任何成员或非静态方法,则内部类可以是静态的。如果你有很多OuterClass的实例,并且InnerClassOuterClass分离,那么从内存使用的角度来看效率更高,如果你将{{1}}拆分成自己的类,需要的。

答案 1 :(得分:0)

您可以使内部类静态以提供更好的组织结构。这两个类是独立处理的,但允许您查看与外部类的明确关系。如果你声明一个内部类静态,那么它不能引用它的外部类的任何成员或非静态方法。

例如,Map.Entry是一个内部静态类。如果它只是被调用Entry那么与Map类的关系可能不那么明确。

编辑:正如Ted Hopp所提到的,静态类不需要外部类的实例来实例化,因为类本质上被视为单独的。