声明中的关键字“class”

时间:2010-05-20 04:33:25

标签: java

我在面试中遇到了一个相当简单的问题。

为什么我们使用class关键字来声明课程?

5 个答案:

答案 0 :(得分:12)

简短回答:因为这是在C ++中完成的方式。 Java已经从C ++中采用了大部分语法 - 在我看来,这是一个明智的决定,因为它确实有助于在程序员还是新的时候进行绘制。

现在,如果您的问题是为什么需要关键字 - 也就是为什么编译器不能推断出声明类的位置 - 也许它可以,但使用关键字具有以下好处

  1. 更容易编译。
  2. 比隐式声明对人类更具可读性。
  3. 正如我上面所说的 - 类似于C ++语法。
  4. 编辑:另外一件事 - 编译器在Java语法中推断出无法的某些东西 - 例如,空类和空类之间的唯一区别interface(在Java中都是合法的)是class / interface关键字。

答案 1 :(得分:3)

更好地解决歧义。 .java文件可以是接口,枚举或类。例如,您如何区分没有方法主体的interfaceabstract class

Java编译器根本不会这样工作 - 即通过声明,然后看看它可能是什么。不是说它不能,它就是这样设计的。

答案 2 :(得分:2)

原因只是为了便于阅读。

  • 如果要声明某个类,请使用class关键字。
  • 声明枚举,使用enum关键字。
  • 如果正在声明某个界面,请使用interface关键字。

关键词在计算机语言中起着非常重要的作用,其含义越明确越明显越好。不一致地命名它们会带来更多弊大于利。

完整的关键字列表在Java语言规范中给出:

JLS 3.9 Keywords

  

以下由ASCII字母组成的字符序列保留用作关键字,不能用作标识符:

        abstract    continue    for           new          switch
        assert      default     if            package      synchronized
        boolean     do          goto          private      this
        break       double      implements    protected    throw
        byte        else        import        public       throws
        case        enum        instanceof    return       transient
        catch       extends     int           short        try
        char        final       interface     static       void 
        class       finally     long          strictfp     volatile
        const       float       native        super        while
     

关键字constgoto是保留的,即使它们目前尚未使用。

另见

相关问题

答案 3 :(得分:1)

将它与接口/方法分开,从而说它有可能在其他地方实例化(如果它不是抽象等)。

答案 4 :(得分:1)

因为编译器根据语法中允许的有效语法验证源代码要比使用接口/枚举/属性定义中允许的有效语法验证源代码要简单得多,如果您明确地给它提供此信息,而不是编译器具有有智慧来推断这一点。