0

独占ゲームでいくつかのことを計算するために、いくつかの単純なクラスを作成しています。

私の最初のクラス (BoardSquare) には、プレイヤー ID の squarename と正方形の家の数を取得および設定するメソッドがあり、if ステートメントを使用して、正方形にある家の数に基づいて家賃を計算する別のメソッドがあります。

私の 2 番目のクラス (House) には、別の if ステートメントでプロパティの新しい家の価格を取得するメソッドと、家の価格を設定する set メソッドがあります。

私の目標は、boardsquare クラス内で House クラスを使用することです。つまり、インスタンス変数を持つ代わりに

    int houses;

正方形の家の数を保持するには、House 型の変数を使用します。つまり、正方形に多数の家を配置するのではなく、0 または 1 の家を配置します。

やりたいことはわかっているのに、どうすればいいのかわからない。

インスタンス変数 House house があります。そして私の 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
    }

私が達成しようとしていることを理解していただければ幸いです。あなたが提供できるヒントをいただければ幸いです。

4

2 に答える 2

1

あなたが欲しいCollection<House>

LinkedList<House>リンクされたリストの特定の動作が必要でない限り、使用しないでください。これは にも当てはまりArrayListます。これらのいずれかを実装として使用することもできますが、可能な限り最も抽象的なコレクションを使用してください。

  • List家の順番が重要
  • Set各タイプの家のインスタンスを 1 つだけ適用する場合 (該当しない場合があります)

そう:

Collection<House> houses = new ArrayList<House>();

public Collection<House> getHouses() {
    return houses;
}

public void addHouse(House newHouse) {
    houses.add(newHouse);
}

ArrayListリストの最後に新しい要素を追加するのが効率的であるため、実装を選択しました。これは にも当てはまりますが、エントリを に効率的に挿入するための追加のオーバーヘッドLinkedListが追加されます。詳細については、ドキュメントを参照してください。LinkedListList

于 2013-11-05T20:32:44.323 に答える