首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么不能在Java中将类声明为static?

为什么不能在Java中将类声明为static?
EN

Stack Overflow用户
提问于 2010-08-27 20:32:56
回答 10查看 328.7K关注 0票数 471

为什么不能在Java中将类声明为static?

EN

回答 10

Stack Overflow用户

发布于 2013-08-19 05:12:12

默认情况下,顶级类是静态的。内部类默认情况下是非静态的。您可以通过显式地将内部类标记为静态来更改内部类的默认值。顶层类由于是顶层类,不能具有非静态语义,因为不能有父类可供引用。因此,无法更改顶级类的默认值。

票数 43
EN

Stack Overflow用户

发布于 2013-06-28 05:18:19

所以,我来晚了,但这里是我的两点-哲学上补充科林·赫伯特的答案。

在较高的层次上,您的问题涉及对象和类型之间的差异。虽然有许多汽车(对象),但只有一个汽车类别(类型)。将某些东西声明为静态意味着您是在“类型”空间中操作。只有一个。顶级class关键字已经在" type“空间中定义了一个类型。因此,"public static class Car“是多余的。

票数 37
EN

Stack Overflow用户

发布于 2012-06-01 00:28:00

具有私有构造函数的类是静态的。

像这样声明你的类:

代码语言:javascript
复制
public class eOAuth {

    private eOAuth(){}

    public final static int    ECodeOauthInvalidGrant = 0x1;
    public final static int    ECodeOauthUnknown       = 0x10;
    public static GetSomeStuff(){}

}

你可以不需要初始化就可以使用:

代码语言:javascript
复制
if (value == eOAuth.ECodeOauthInvalidGrant)
    eOAuth.GetSomeStuff();
...
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3584113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档