使用类作为变量标识符



我正在制作几个简单的类来计算大富翁游戏中的一些东西。

我的第一堂课(BoardSquare)有获取和设置玩家ID方格名称和广场上的房屋数量的方法,而我有另一种方法,使用if语句根据广场上的房屋数量计算租金。

我的第二类(房子)有一个方法,可以在另一个if语句中获取新房子的房产成本,然后有一个设置方法来设置房价。

我的目标是在板方形类中使用 House 类。我的意思是,而不是有一个实例变量

    int houses;

为了保持正方形上的房屋数量,我使用房屋类型的变量。换句话说,不是在一个正方形上有很多房子,而是有 0 或 1 个房子。

我知道我想做什么,只是不知道该怎么做。

所以我有一个实例变量 房子;和我的getHouses方法读取

    public House getHouses(this is where i had int h(from the constructor) but I dont know what to put here now)
    {
    Whatever I need to put here to access the class House
    }

希望你能理解我想要完成的任务。如果您能提供任何提示,我将不胜感激。

你想要一个Collection<House>

不要使用 LinkedList<House>,除非需要链表的特定行为。 这也适用于ArrayList. 您可能希望其中任何一个作为实现,但尽可能使用最抽象的集合。

  • List房屋的顺序很重要
  • Set,如果您只想强制执行每种房屋类型的一个实例(可能不适用)

所以:

Collection<House> houses = new ArrayList<House>();
public Collection<House> getHouses() {
    return houses;
}
public void addHouse(House newHouse) {
    houses.add(newHouse);
}

我选择了一个ArrayList实现,因为将新元素添加到列表末尾是有效的。 LinkedList也是如此,但LinkedList增加了额外的开销,使得将条目插入List变得高效。 有关详细信息,请参阅文档。

在 BoardSquare 类中添加一个实例变量,如下所示:

LinkedList<House> houses;

如果只能有 0 或 1 个房屋,则可以有一个 House 类型的实例变量,以及一个名为 hasHouses 的布尔类型的实例变量。

最新更新