我正试图从C++转向Java.
我想知道的是,在C++中,在类定义之后,需要使用分号(;),但在Java中则不是.
也就是说,在C++中:
class Person {
public:
string name;
int number;
}; // Note this semicolon
Run Code Online (Sandbox Code Playgroud)
但在Java中:
class Person {
public String name;
public int number;
} // Semicolon is not required
Run Code Online (Sandbox Code Playgroud)
那很好,我理解.
但是,我的问题是:
当我在类定义结束时添加分号时,Java也可以工作,如:
class Person {
public String name;
public int number;
}; // Now this semicolon is confusing me!
Run Code Online (Sandbox Code Playgroud)
我编译并执行了为Java显示的程序片段,它们都有效.任何人都可以解释为什么会这样吗?Java中类定义结尾的分号代表什么?
如果这个问题质量低,我很抱歉,但我真的需要澄清一下.我希望Java专家能帮助我.
好吧,我已经在课堂定义和其他相关问题中看到过Semicolons.
提前致谢.
如果我在以这种方式声明枚举常量之前或之前声明变量:
enum MyEnum
{
int i = 90;
}
Run Code Online (Sandbox Code Playgroud)
它显示以下编译错误.
MyEnum.java:3: <identifier> expected
{
^
MyEnum.java:4: ',', '}', or ';' expected
int i = 90;
^
MyEnum.java:4: '}' expected
int i = 90;
^
MyEnum.java:5: class, interface, or enum expected
}
^
4 errors
Run Code Online (Sandbox Code Playgroud)
但是如果我在声明之前宣布一个枚举常量,i那么它编译得很好.
即使以下代码将编译正常:
enum MyEnum
{
;//put a semicolon
int i = 90;
}
Run Code Online (Sandbox Code Playgroud)
为什么java enum是这样设计的?