为什么不能在Java中将类声明为static?
发布于 2013-08-19 05:12:12
默认情况下,顶级类是静态的。内部类默认情况下是非静态的。您可以通过显式地将内部类标记为静态来更改内部类的默认值。顶层类由于是顶层类,不能具有非静态语义,因为不能有父类可供引用。因此,无法更改顶级类的默认值。
发布于 2013-06-28 05:18:19
所以,我来晚了,但这里是我的两点-哲学上补充科林·赫伯特的答案。
在较高的层次上,您的问题涉及对象和类型之间的差异。虽然有许多汽车(对象),但只有一个汽车类别(类型)。将某些东西声明为静态意味着您是在“类型”空间中操作。只有一个。顶级class关键字已经在" type“空间中定义了一个类型。因此,"public static class Car“是多余的。
发布于 2012-06-01 00:28:00
具有私有构造函数的类是静态的。
像这样声明你的类:
public class eOAuth {
private eOAuth(){}
public final static int ECodeOauthInvalidGrant = 0x1;
public final static int ECodeOauthUnknown = 0x10;
public static GetSomeStuff(){}
}
你可以不需要初始化就可以使用:
if (value == eOAuth.ECodeOauthInvalidGrant)
eOAuth.GetSomeStuff();
...
https://stackoverflow.com/questions/3584113
复制相似问题