Эта программа начинается в классе FleetInterface, запрашивая у пользователя файл (run()
). Метод buildFleet()
считывает файл, затем вызывает Vehicle в класс Fleet, вызывая метод addVehicle()
, и в этом методе он устанавливает новый объект Vehicle в массив Vehicle.
После всего, что сделано, появляется меню пользователя, спрашивающее, хотят ли они 1.) Добавить транспортное средство, 2.) Удалить транспортное средство.
Допустим, они добавляют новый автомобиль. Требование состоит в том, чтобы пользователь вручную вводил данные об этом транспортном средстве (всю ту же информацию, которая была в файле в начале). Проблема в том, что эта опция также вызывает addVehicle()
. Если я запрограммирую в методе addVehicle()
некоторые утверждения, такие как «Пожалуйста, введите модель вашего автомобиля:», это также будет отображаться при первом запуске программы и вызове addVehicle().
Сложная часть - мне не разрешено создавать новые общедоступные методы (только частные) и я не могу добавлять новые данные уровня класса.
В моем классе Fleet есть 2 конструктора: 1 пустой (здесь нельзя ничего устанавливать). И 1 имеет значение параметра File (используется для чтения исходного файла).
Итак, чтобы подвести итог, мне нужен способ, чтобы программа начала чтение значений в файле, вызывая addVehicle()
, а затем также позволяла пользователю войти в транспортное средство вручную через сканер... при этом также вызывая addVehicle()
Вот мой код:
Приложение FleetInterface:
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;
добавитьТранспортное средство:
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.");
}
}