2012-02-26 4 views
0

아래 예제에서 Car 클래스를 구현할 수 있습니까? 브랜드 매핑에 휠이있는 컬렉션을 전달할 수 있지만 더 좋은 방법이 있습니까?자바 생성자의 변수 인수

자동차에는 엔진과 바퀴가 몇 개 있습니다. 모든 차가 4 륜구동을 갖기 위해 제작 된 것은 아니며, 일부 차종은 3 개 밖에 없지만 다른 차종은 더 많이 가지고 있습니다. 그러나 그들이 만들 수있는 것이 무엇이든, 그 수는 그들이 지닐 수있는 최대 숫자입니다. 자동차가 만들어지면 (즉, 건설 된 경우) 엔진이 만들어지고 휠이 사용됩니다.

+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

이렇게하는 방법은 여러 가지가 있지만, 어떤 것이 더 좋을지에 대한 정보가 충분하지 않습니다.

나는 당신이 가장 단순하고 깨끗하다고 ​​믿는 것을 제안하고, 컬렉션을 통과하면 당신이 할 것을 제안합니다.