关于类中类的 OOP 相关问题

Jes*_*sse 3 java oop class

语境:

所以基本上我有一个Map包含名称的类和另一个名为 的类RoomRoom包含一个 int 表示门的数量,以及一个名为 的类DoorDoor包含一个表示门位置的字符,可以是 N(orth)、E(ast)、S(outh)、W(est)。

问题:

这就是我设置Room班级的方式:

public class Room {
    int doors;
    Door door;


    public Room(int doors, Door door) {
        this.doors = doors;
        this.door = door;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这样我只能给它一扇门,而且我需要能够分配相当于 int 门值的门数量。有任何想法吗?

Raj*_*ana 5

只是您必须使用可以包含多个门的数组或列表

public class Room {
        Door doors[];
    }
Run Code Online (Sandbox Code Playgroud)

或者,如果您在创建房间对象时不确定门的数量,则可以创建一个数组列表,因为数组的大小是固定的。

public class Room {
    List<Door> doors = new ArrayList<Door>();
}
Run Code Online (Sandbox Code Playgroud)

如果您使用数组,您可以使用构造函数像这样初始化门对象

public Room(int num) {
        this.doors = new Door[num];
        Arrays.fill(this.doors,new Door());
    }
Run Code Online (Sandbox Code Playgroud)