2012-02-26 3 views
0

Могу ли я реализовать класс Car в примере ниже. Я могу передать коллекцию с колесом для картографирования бренда, но есть ли лучший способ сделать это?Переменные аргументы в конструкторе java

Автомобиль имеет двигатель и некоторое количество колес. Не все автомобили построены для того, чтобы держать четыре колеса, некоторые из них имеют только три, а другие - больше. Но независимо от того, для чего они созданы, это максимальное количество, которое они могут удерживать. Когда автомобиль построен (т. Е. Построен), для него создается двигатель, а также колеса, которые он будет использовать.

+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

Существует много способов сделать это, но информации недостаточно, чтобы сказать, что может быть лучше.

Я предлагаю вам делать то, что, по вашему мнению, является самым простым и ясным, и если передача коллекции работает для вас, сделайте это.

Смежные вопросы