2017-09-10 49 views
-3

嗨,大家需要一些幫助,我正在開發一個java項目。Java Project構建數組中的數組

基本上我有5類TestClass中,建築,住宅,車庫,和HouseRooms

  • 大樓有一個樓層數和數量的窗口。
  • 房子是建築物。

  • A garage is a building。

  • 一個房間有一個長度,寬度,地板覆蓋,和一些 壁櫥。

  • 房子有一些浴室和一系列房間。
  • 房子有一種方法可以返回房間的平均大小。
  • 一個車庫可以容納一定數量的汽車,它可能有一個水泥地板 或碎石地板。

  • 車庫有一個長度和寬度。 (請勿使用客房類作爲車庫類的 成員。)

的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

一房子是建築物,車庫也是這樣,但房間不是房子,所以'房間'不應該延伸'房子'。你的小圖像甚至表明'房間'擴展了'對象',而不是'家'。 ---另外,如果房子應該有房間,爲什麼你創建了一個名爲'HouseRooms'的單獨的類,而不是僅僅將'房間'添加到'House'? – 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課程,或者我會把它全部放在House中。 –

+0

您必須刪除HouseRooms類,因爲當House類看起來像 公共類別House延伸建築私人浴室; private ArrayList rooms = new ArrayList(); } 這意味着衆議院有房間。 – gokhanbirincii

+1

爲了更好地理解你可以檢查這個oop主題(聚合構圖關聯) – gokhanbirincii