首页 > 解决方案 > 关于类中的类的 OOP 相关问题

问题描述

语境:

所以基本上我有一个类Map,其中包含一个名称和另一个名为Room. Room包含一个表示它拥有的门数量的 int 和一个名为Door. Door包含一个 char 表示门的位置,可以是 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;
    }
}

但是这样我只能给它 1 个门,并且我需要能够分配与 int 门的值相等的门数量。有任何想法吗?

标签: javaclassoop

解决方案


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

public class Room {
        Door doors[];
    }

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

public class Room {
    List<Door> doors = new ArrayList<Door>();
}

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

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

推荐阅读