私が取り組んでいるJavaプロジェクトではちょっと助けが必要です。Java Project配列を配列に構築する
は基本的に私は、5つのクラスTestClassを、ビル、家、ガレージ、およびHouseRooms
- 建物がフロアの数を持っており、ウィンドウの数を持っています。
家は建物です。
ガレージは建物です。
部屋の長さ、幅、床の覆い、および クローゼットの番号があります。
- 家には多くのバスルームと部屋の配列があります。
- 家には部屋の平均サイズを返すメソッドがあります。
ガレージにはいくつかの車を入れることができ、セメント床 または砂利の床がある場合があります。
車庫は長さと幅を持っています。 (ガレージクラスの メンバーとしてのルームクラスを使用しないでください。)
TestClassを私は持っているのArrayListを持っている必要がありますが、私はそれぞれの家のために部屋の配列を作成する方法がわかりませんよそれ自身のオブジェクトで。私はあなたがHouseRoomsクラスで見ることができるように試みましたが、それが最善の方法について知っていません。
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;
}
A家は建物なのでガレージですが、部屋は家ではないので、「部屋」は「家」を広げてはいけません。あなたの小さなイメージは、 'Room'が' House'ではなく 'Object'を拡張していることを示しています。 ---また、もし家に部屋がなければならないのに、なぜ、 'House'にフィールド' rooms'を追加するのではなく、 'HouseRooms'という別のクラスを作りましたか? – Andreas
ああ、私は参照してください、しかし、どのように私は部屋をハウスにリンクしますか?建物と部屋も拡張するオブジェクトを作成できますか? –
「家を建てた建物」*は何を意味しますか?ハウス*はビルです。 ---オブジェクトを拡張することは*リンクすることではありません。そう思ったら、あなたのJavaガイドをもう一度読んでください。 – Andreas