2012-02-26 20 views
0

次のサンプルでは、​​Carクラスを実装できます。ブランドマッピングにホイール付きのコレクションを渡すことはできますが、それを行うにはより良い方法がありますか?Javaコンストラクタの可変引数

車にはエンジンといくつかの車輪があります。すべての車が4つの車輪を保持するように作られているわけではありません。しかし、それが何のために作られていようとも、それはそれらが保持できる最大数です。車が建設される(すなわち、建設される)とき、エンジンがそれのために作成され、それが使用する車輪も同様です。

+0

は宿題ですか? –

+1

宿題、何か? – GenericJon

+1

デザインパターンについてはいかがですか? – talnicolas

答えて

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

コレクションにはホイールのブランドも含まれていると思います。 –

+0

私はそれぞれの 'Wheel'オブジェクトが独自のブランド属性を持つと想像しました。 –

0

これを行うにはさまざまな方法がありますが、どの方が良いかについての情報は不十分です。

私はあなたが信じていることを最も簡単で分かりやすいものにすることをお勧めします。コレクションを渡すことで効果が得られると思います。

関連する問題