我有一个网格,像一个数组,每个数组包含1个字符(char [] [])。
在那个网格上,我建造了房屋,占据了一个或多个街区。 我想在某种列表中存储位置(网格坐标)和特征(价格,维护)。
house对象是包含具有以下特征的多个对象的枚举的一部分:
public enum Building {
HOUSE(width, height, price, upkeep, symbol)
FACTORY(width, height, price, upkeep, symbol)
}
- 宽度和高度是它占用的网格中的切片数量 - symbol是网格中用于表示特定建筑物的角色
我想这样做:(伪代码)
ArrayList<house> buildings = new ArrayList<House>
但是我怎么能添加房子的位置(这个arrayList中的x和y坐标?我应该使用另一种数据类型吗?
答案 0 :(得分:1)
如果你的两个房子对象可以有不同的属性,我的感觉你的枚举应该是BuildingType
,就像你提到的位置一样。
创建一个Building
类,其类似int x; int y;
和BuildingType
(枚举),表示它所在的建筑类型。
如果有必要,你可以拥有超级Building
和两个(或更多?)子类型(House
,Factory
,Apartment
等)在这种情况下你不再需要枚举。一切都符合您的要求。