我想知道是否有一些情况我们必须在java中将类声明为静态。我真的不想在java中声明一个静态类。
提前感谢,
答案 0 :(得分:4)
java中的外部类不能是静态的。静态类的用例是内部类。例如:
public class OuterClass {
static class InnerClass { }
}
如果内部类没有引用外部类中的任何成员或非静态方法,则内部类可以是静态的。如果你有很多OuterClass
的实例,并且InnerClass
与OuterClass
分离,那么从内存使用的角度来看效率更高,如果你将{{1}}拆分成自己的类,需要的。
答案 1 :(得分:0)
您可以使内部类静态以提供更好的组织结构。这两个类是独立处理的,但允许您查看与外部类的明确关系。如果你声明一个内部类静态,那么它不能引用它的外部类的任何成员或非静态方法。
例如,Map.Entry
是一个内部静态类。如果它只是被调用Entry
那么与Map
类的关系可能不那么明确。
编辑:正如Ted Hopp所提到的,静态类不需要外部类的实例来实例化,因为类本质上被视为单独的。