我正在用Java创建游戏,需要创建其中所有房间的列表。
我有一个“ Rooms”类,其中包含房间的代码,即房间名称,房间中的物品等。
在Room类中,我想要一个静态ArrayList,其中包含整个游戏中的所有room对象。这是我正在研究的一种方法。
我创建了一个ArrayList字段:
private static ArrayList<Rooms> listOfRooms = new ArrayList<Rooms>();
在初始化Room的每个实例时,我希望将该实例添加到listOfRooms ArrayList。
我假设您以listOfRooms.add()
开头,但是您实际要在参数中添加什么以将当前对象添加到Rooms对象列表中?
答案 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等。