2017-09-10 10 views
-3

私が取り組んでいるJavaプロジェクトではちょっと助けが必要です。Java Project配列を配列に構築する

は基本的に私は、5つのクラスTestClassを、ビル、家、ガレージ、およびHouseRooms

  • 建物がフロアの数を持っており、ウィンドウの数を持っています。
  • 家は建物です。

  • ガレージは建物です。

  • 部屋の長さ、幅、床の覆い、および クローゼットの番号があります。

  • 家には多くのバスルームと部屋の配列があります。
  • 家には部屋の平均サイズを返すメソッドがあります。
  • ガレージにはいくつかの車を入れることができ、セメント床 または砂利の床がある場合があります。

  • 車庫は長さと幅を持っています。 (ガレージクラスの メンバーとしてのルームクラスを使用しないでください。)

TestClassを私は持っているのArrayListを持っている必要がありますが、私はそれぞれの家のために部屋の配列を作成する方法がわかりませんよそれ自身のオブジェクトで。私はあなたがHouseRoomsクラスで見ることができるように試みましたが、それが最善の方法について知っていません。

image

public class TestClass { 
    public static void main(String[] args) { 
     ArrayList<Building> buildings = new ArrayList(); 
    } 
} 

public class Building { 
    private String buildingType; //House or Garage 
    private int floors; 
    private int windows; 
} 

public class House extends Building { 
    private int bathrooms; 
    private ArrayList<Room> rooms = new ArrayList(); 
} 
class Rooms { 
    private double length; 
    private double width; 
    private String floorCover; 
    private int closets; 
} 

public class Garage extends Building { 
    private int cars; 
    private String floorType; 
    private double length; 
    private double width; 
} 
+1

A家は建物なのでガレージですが、部屋は家ではないので、「部屋」は「家」を広げてはいけません。あなたの小さなイメージは、 'Room'が' House'ではなく 'Object'を拡張していることを示しています。 ---また、もし家に部屋がなければならないのに、なぜ、 'House'にフィールド' rooms'を追加するのではなく、 'HouseRooms'という別のクラスを作りましたか? – Andreas

+0

ああ、私は参照してください、しかし、どのように私は部屋をハウスにリンクしますか?建物と部屋も拡張するオブジェクトを作成できますか? –

+0

「家を建てた建物」*は何を意味しますか?ハウス*はビルです。 ---オブジェクトを拡張することは*リンクすることではありません。そう思ったら、あなたのJavaガイドをもう一度読んでください。 – Andreas

答えて

0

として部屋を持っている必要がありますがbuildingType変数

public class Building { 
     private BuildingType buildingType; //House or Garage 
     private int floors; 
     private int windows; 

    enum BuildingType{ 
    HOUSE,GARAGE 
    } 

    } 

ために列挙型を使用することができますし、ルームクラスではなく、家の家を拡張するべきではありません。

public class House extends Building { 
    private int bathrooms; 
    private ArrayList<Room> rooms = new ArrayList(); 
} 
+0

ありがとう、私はまだ別のHouseRoomsクラスを持っていますか? –

+0

Houseクラスを削除する必要があるのは、Houseクラスが のように見えるためです。public class House Building { private int bathroomrooms; プライベートArrayList rooms =新しいArrayList(); } その家には部屋があります。 – gokhanbirincii

+1

あなたはこのoopのトピックをチェックすることができます(集約構成の関連付け) – gokhanbirincii

関連する問題