Java 初始化类


class Room {
private String description;  
private HashMap<String,Room> dir=new HashMap<String,Room>();
Room(String de){
description=de;
}
public String toString() {
return description;
}
public void add(String s,Room r) {
dir.put(s, r);
}
}

class Game {
Room lobby;   //Syntax error on token";",,expected
lobby=new Room("pub");
} 

有两个类。并且游戏类有一个问题,说令牌上的语法错误";",,预期。

Java 只允许在

  1. 变量的声明或
  2. 在方法/块或
  3. 在一个街区内。

JVM 仅在上述步骤中允许分配内存。在您提供的示例中,lobby=new Room("pub");因为它在类级别 JVM 不知道如何分配内存,从而导致错误。

在Java的初始化字段文档之后,有三个选项:

1- 在声明时初始化:

Room lobby=new Room("pub");

2- 静态初始值设定项块:

static {
lobby=new Room("pub");
} 

3- 初始值设定项块:

{
lobby=new Room("pub");
} 

而不是:

Room lobby;   //Syntax error on token";",,expected
lobby=new Room("pub");

使用内联声明和实例化:

Room lobby = new Room("pub");

在类中的代码块 {}(方法、静态/实例块、使用块的其他构造(中只能有一个语句。

最新更新