将java分类结尾是否在语法上是正确的; 在大多数文档中,java类语法不以;
结尾但是我成功地编译了下面的代码,
public class ClassDemo {
public static void main (String args[]) {
System.out.println ("Hello World!");
}
};
我的问题是,使用;
结束类声明是否正确?为什么编译器会忽略它,而且最后是否有;
似乎无动于衷?
答案 0 :(得分:4)
您的代码的语法正确,但;
是不必要的。
来自JLS 7.6.
额外“;”出现在a中类型声明级别的标记 编译单元对编译的含义没有影响 单元。 Java编程语言允许使用杂散分号 仅作为对习惯于放置“;”的C ++程序员的让步 在课堂宣言之后。它们不应该用在新的Java代码中。
答案 1 :(得分:0)
它在语法上是有效的,但不是必需的,并且按惯例省略。
答案 2 :(得分:0)
它只是一个终结者,所以如果你包括任何地方和任何次数,那么它不会影响你的程序。
答案 3 :(得分:0)
“;”出现在编译单元中类型声明级别的标记对编译单元的含义没有影响。 所以它是可选的。
答案 4 :(得分:0)
我认为你来自javascript这样的背景。
在javascript中,最好使用;
结束您的类/方法/脚本。
因为如果你不这样做,它会导致在之后加载的另一个javacript出现问题,因为它被认为是早期脚本的继续部分。
然而在java类中,定义以}
结束。之后的任何内容都不会成为此类的一部分,对编译器来说也不是问题。
事实上,你可以在任何java行中拥有尽可能多的;
。它对java编译器没有任何影响。
答案 5 :(得分:0)
Java Class以Semicolon(;)
结束在计算机编程中,分号通常用于分隔多个语句(例如,在Perl,Pascal,PL / I和SQL中; 请参阅Pascal:分号作为语句分隔符)。在其他语言中,分号称为终结符,在每个语句之后都是必需的(例如在Java和C系列中)。今天作为终结者(或没有分号)的分号在很大程度上已经取得了胜利,但这在20世纪60年代到80年代的编程语言中是一个分歧的问题。在这场辩论中有影响力和经常被引用的研究是Gannon& Horning(1975),强烈支持分号作为终结者:
最重要的是,使用分号作为语句终止符比使用分号作为语句分隔符更好。 因此JAVA认为类以(;)作为类终止符。如果你把其他标点符号放在。或者字母编译器会通过错误