引用对象内部的对象

时间:2018-11-20 16:38:12

标签: java class

我正在用Java创建游戏,需要创建其中所有房间的列表。

我有一个“ Rooms”类,其中包含房间的代码,即房间名称,房间中的物品等。

在Room类中,我想要一个静态ArrayList,其中包含整个游戏中的所有room对象。这是我正在研究的一种方法。

我创建了一个ArrayList字段:

private static ArrayList<Rooms> listOfRooms = new ArrayList<Rooms>();

在初始化Room的每个实例时,我希望将该实例添加到listOfRooms ArrayList。

我假设您以listOfRooms.add()开头,但是您实际要在参数中添加什么以将当前对象添加到Rooms对象列表中?

2 个答案:

答案 0 :(得分:0)

您将this添加到列表中; this是正在处理的当前对象(在本例中为a Room)的引用:

listOfRooms.add(this);

但是请注意,将listOfRooms作为类的静态成员不是一个好主意。使用此设置,您只能拥有一个列表,并且任何人都可以更改列表,因为它是公开的。

创建类似Hotel的类并将其作为该类的成员可能会更好:

class Hotel {
    ArrayList<Rooms> listOfRooms = new ArrayList<Rooms>();
}

现在,如果需要,您至少可以拥有多个带有单独房间列表的酒店,并且要修改房间,代码至少需要引用该酒店。

答案 1 :(得分:0)

除了Carcigenicate所说的以外,在面向对象的程序设计中拥有更多的抽象总是更好的选择。 例如,酒店对象中有一个Floor ArrayList。每个Floor对象都包含Room的ArrayList等。