声明中的关键字“class”

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

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

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

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

  1. 更容易编译。
  2. 比隐式声明对人类更具可读性。
  3. 正如我上面所说 – 类似于C ++语法。

编辑:另外一件事 – 编译器在Java语法中无法推断出某些事情 – 例如,空类和空接口(在Java中都是合法的)之间的唯一区别是class / interface关键字。

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

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

原因仅仅在于可读性。

  • 如果正在声明一个类,请使用class关键字。
  • 它正在声明enum ,使用enum关键字。
  • 如果正在声明interface ,请使用interface关键字。

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

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

JLS 3.9关键字

由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是保留的,即使它们当前未被使用。

也可以看看

  • 维基百科/关键字(计算机编程)

相关问题

  • 为什么编程语言需要关键字?
  • 避免语言关键字冲突

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

因为编译器根据语法中允许的有效语法validation源代码要简单得多,如果你明确地给它提供了这个信息,而不是编译器必须具有这个信息,那么接口/枚举/属性定义中允许使用有效语法。情报来推断这一点。