Номер переменной класса Java

#java #class #variables

#java #класс #переменные

Вопрос:

Я изучаю Java, и теперь у меня есть этот вопрос.

Я создал класс с именем «Driver», и он будет содержать информацию о драйвере (имя и день рождения).

Чтобы создать новый драйвер, мне просто нужно сделать:

 Driver d1 = new Driver("John", "01/01/1980");
  

Теперь представьте, что у меня есть программа, которая будет считывать информацию о драйверах x из файла. Как я могу создать x драйверов?

Моя проблема в том, что я думаю, что мне нужны переменные x для драйверов x, но переменные могут быть жестко запрограммированы только мной…

Ответ №1:

Или вы можете использовать массив или коллекцию ( List или Set ):

 List<Driver> drivers = new ArrayList<Driver>();
drivers.add(new Driver(..));
drivers.add(new Driver(..));
  

При чтении из файла вы обычно используете цикл. Итак, на каждой итерации добавляйте объект в список.

Комментарии:

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

2. проверьте javadoc. drivers.get(index) дает вам индексный элемент

Ответ №2:

По сути, вам нужно прочитать каждый драйвер один за другим и сохранить их в коллекции. В Java существует несколько классов коллекций, но ArrayList в вашем случае все должно быть в порядке:

 ArrayList<Driver> drivers = new ArrayList<Driver>();

Driver d1 = new Driver("John", "01/01/1980");
drivers.add(d1); 
  

Ответ №3:

вы должны создать List<Driver> (или какую-либо другую коллекцию, например Map ), в которой будут храниться все драйверы.

Ответ №4:

Используйте простой массив:

 Driver[] drivers = {new Driver("John", "01/01/1980"),
                    new Driver("Smith", "02/02/1990")};

// or

Driver[] drivers = new Driver[2];
drivers[0] = new Driver("John", "01/01/1980");
drivers[1] = new Driver("Smith", "02/02/1990");
  

Но массив имеет фиксированный размер после его создания. Таким образом, вы можете использовать ArrayList вместо:

 List<Driver> drivers = new ArrayList<Driver>();
drivers.add(new Driver("John", "01/01/1980"));
drivers.add(new Driver("Smith", "02/02/1990"));
// ...