相关疑难解决方法(0)

为什么分号不是必需的,但在类定义结束时允许使用分号?

我正试图从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.

提前致谢.

java syntax

15
推荐指数
3
解决办法
2万
查看次数

为什么必须在枚举类型中的任何其他变量和方法声明之前声明枚举常量?

如果我在以这种方式声明枚举常量之前或之前声明变量:

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是这样设计的?

java syntax enums

9
推荐指数
1
解决办法
1468
查看次数

标签 统计

java ×2

syntax ×2

enums ×1