2012-02-26 39 views
0

何我可以在下面的示例中實現一個Car類。我可以通過一個輪子集合來進行品牌映射,但有沒有更好的方法來做到這一點?java構造函數中的變量參數

汽車有一個引擎和一些車輪。並不是所有的汽車都有四個輪子,有的只有三個,有的則多。但無論它們是爲什麼而建造的,這都是它們可以容納的最大數量。當汽車被建造(即建造)時,爲它創建引擎,它將使用的引擎也是如此。

+0

是功課嗎? – 2012-02-26 21:11:20

+1

作業,有什麼機會? – GenericJon 2012-02-26 21:11:42

+1

關於設計模式的好書怎麼樣? – talnicolas 2012-02-26 21:11:54

回答

4
public class Car 
{ 
    private Engine  e; 
    private int   numWheels; 
    private List<Wheel> wheels; 

    public Car(Engine e, int numWheels, ...) 
    { 
     this.e   = e; 
     this.numWheels = numWheels; 
     this.wheels = new ArrayList<>(); 

     for(int i = 0; i < this.numWheels; i++) 
     { 
      this.wheels.add(new Wheel(...)); 
     } 
    } 
} 

只需添加持有車輪這款車對象可以有數量的整數。然後在構造函數中循環並添加這些輪子

+0

我假設集合也包含車輪的品牌。 – 2012-02-26 21:15:16

+0

我曾想象過每個'Wheel'對象都有自己的品牌屬性。 – 2012-02-26 21:17:43

0

有很多方法可以做到這一點,但沒有足夠的信息來說明哪個更好。

我建議你做你認爲最簡單和最清晰的事情,如果通過一個集合爲你工作,那麼做。