Эта программа запускается в классе FleetInterface, запрашивая у пользователя файл (run()
).Метод buildFleet()
читает файл, затем вызывает Vehicle для класса Fleet, вызывая метод addVehicle()
, и в этом методе он устанавливает новый объект Vehicle в массив транспортных средств.
После всего, что сделано,появляется меню пользователя с вопросом, хотят ли они 1.) Добавить транспортное средство, 2.) Удалить транспортное средство.
Допустим, они добавляют новое транспортное средство.Требуется, чтобы пользователь вручную вводил данные об этом транспортном средстве (все ту же информацию, которая была в файле в начале).Проблема в том, что эта опция также вызывает addVehicle()
.Если я запрограммирую в методе addVehicle()
некоторые операторы типа «Пожалуйста, введите модель вашего автомобиля:», они также появятся при первом запуске программы и вызовут addVehicle ().
Сложная часть - Iмне не разрешается создавать какие-либо новые открытые методы (только частные), и я не могу добавлять новые данные уровня класса.
В моем классе Fleet есть 2 конструктора: 1 пуст (здесь не разрешено устанавливать что-либо). И1 имеет значение параметра File (используется для чтения исходного файла).
Итак, чтобы подвести итог, мне нужно, чтобы программа запустила чтение значений в файле, вызвав addVehicle()
,затем также разрешить пользователю въехать в автомобиль вручную через сканер .. при этом также вызывая addVehicle()
Вот мой код:
FleetInterfaceApp:
public void run() throws FileNotFoundException
{
File file = new File(getFile());
fleet = new Fleet(file);
buildFleet(file);
}
private void buildFleet(File file) throws FileNotFoundException
{
fleet = new Fleet(file);
fleet.addVehicle(Honda);
userMenu(file, fleet);
}
private void userMenu(File file, Fleet fleet) throws FileNotFoundException
{
int choice = 0;
Scanner input = new Scanner(System.in);
this.createMenu();
choice = this.menu.getChoice();
switch(choice)
{
case 1:
fleet.addVehicle(Honda);
break;
}
}
Автопарк: Данные уровня класса (невозможно изменить):
Vehicle[] vehicles = new Vehicle[4];
File file;
addVehicle:
public void addVehicle(Vehicle Honda[]) throws FileNotFoundException
{
Scanner reader = new Scanner(file);
if(canAddVehicle() == true)
{
for(int i = 0; i < vehicles.length; i++)
{
if(vehicles[i] == null)
{
Honda[i] = new Vehicle();
Honda[i].readRecord(reader);
vehicles[i] = Honda[i];
reader.close();
break;
}
}
System.out.println("Vehicle Added!");
}
else
{
System.out.println("You can not add more than 4 vehicles.");
}
}