为什么在类定义的末尾不需要分号但允许分号?
我正在尝试从C ++转向Java。
我想知道的是,在C ++中,在类定义之后,需要使用分号(;
),而在Java中则不需要。
也就是说,在C ++中:
class Person { public:
string name;
int number;
}; // Note this semicolon
但是在Java中:
class Person { public String name;
public int number;
} // Semicolon is not required
很好,我知道。
但是, :
当我在类定义的末尾添加分号时,Java也可以使用,例如:
class Person { public String name;
public int number;
}; // Now this semicolon is confusing me!
我已经编译并执行了Java所示的两个程序片段,并且它们均有效。谁能解释为什么会这样?Java类定义末尾的分号代表什么?
很抱歉,这个问题的质量很低,但我确实需要对此进行澄清。希望Java方面的专家能对我有所帮助。
好吧,我已经在类定义和其他相关问题中看到了分号。
提前致谢。
回答:
我已经编译并执行了Java所示的两个程序片段,并且它们均有效。谁能解释为什么会这样?
之所以允许,是因为Java语法说允许。参见JLS
7.6。
Java类定义末尾的分号代表什么?
没有。它是可选的“语法噪声”。
JLS对此进行了如下解释:
多余的“;” 出现在编译单元中类型声明级别的标记对编译单元的含义没有影响。Java编程语言中仅允许使用散列分号作为对习惯于放置“;”的C
++程序员的让步。在类声明之后。它们不应在新的Java代码中使用。
(请注意,这不是“空语句”。在允许使用语句的句法上下文中会出现一个空语句(JLS
14.6)。空语句的存在可以更改代码的含义;例如if(a == b) ; c();
vs if (a == b) c();
)
以上是 为什么在类定义的末尾不需要分号但允许分号? 的全部内容, 来源链接: utcz.com/qa/418560.html