2015-11-11 7 views
1

У меня есть массив из 10 объектов, и я хотел бы инициализировать их для массива.как инициализировать объекты массива?

private Flight[] flight = new Flight[10]; 

flight[0] = new Flight("AA101", "Boston", "Sacremento", 421.33, 22, 6); 
flight[1] = new Flight("AA102", "Lincolin", Jacksonville, 612.08, 22 6); 
flight[2] = new Flight("AA103", "Rochester", "Columbia", 510.83, 22, 6); 
flight[3] = new Flight("AA104", "Boise", "Aspen", 411.12, 22, 6); 
flight[4] = new Flight("AA105", "Fort Collins", "Louiseville", 654.22, 22, 6); 
flight{5} = new Flight("AA106", "Seattle", "Dallas" 326.14, 22, 6); 
flight{6} = new Flight("AA107", "Phoenix", "Little Rock", 974.22, 22, 6); 
flight[7] = new Flight("AA108", "Cheyenne", "Louiseville", 521.43 , 22, 6); 
flight[8] = new Flight("AA109", "Louiseville", "Buffalo", 452.21, 22, 6); 
flight[9] = new Flight("AA100", "Anchorage" , "Tampa", 874.72, 22, 6); 

, но я получаю тонны ошибок, таких как:

ReservationGUI.java:31: error: ']' expected

ReservationGUI.java:31: error: illegal start of type

ReservationGUI.java:31: error: ';' expected

ReservationGUI.java:31: error: expected

есть 100 из них.

+0

'Jacksonville' должны иметь кавычки вокруг него, если он не ссылается на переменную где-то – JonK

+1

переместить все эти эти строки (кроме первого) в какой-то метод (или конструктор) – Eran

+0

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

ответ

5

Здесь есть несколько разных ошибок.

private Flight[] flight = new Flight[10]; 

private С, я предполагаю, что это не в методе. Если он находится внутри метода, удалите private. В противном случае все остальное должно войти в ваш конструктор. У вас могут быть только объявления переменных за пределами метода.

flight[1] = new Flight("AA102", "Lincolin", Jacksonville, 612.08, 22 6); 

Вы должны цитировать «Джексонвилл», так как он должен быть String. Вы также не хватает запятой после 22

flight{5} = new Flight("AA106", "Seattle", "Dallas" 326.14, 22, 6); 

Вы используете неправильные скобки на этой линии (и некоторые другие). Он должен быть flight[5], а не flight{5}. [] используется для индексации в массив. Вам также не хватает запятой после «Далласа».

Вот исправленный вариант:

private Flight[] flight = new Flight[10]; 

public YourClassName(){ 
    flight[0] = new Flight("AA101", "Boston",  "Sacremento", 421.33, 22, 6); 
    flight[1] = new Flight("AA102", "Lincolin",  "Jacksonville", 612.08, 22, 6); 
    flight[2] = new Flight("AA103", "Rochester", "Columbia",  510.83, 22, 6); 
    flight[3] = new Flight("AA104", "Boise",  "Aspen",  411.12, 22, 6); 
    flight[4] = new Flight("AA105", "Fort Collins", "Louiseville", 654.22, 22, 6); 
    flight[5] = new Flight("AA106", "Seattle",  "Dallas",  326.14, 22, 6); 
    flight[6] = new Flight("AA107", "Phoenix",  "Little Rock", 974.22, 22, 6); 
    flight[7] = new Flight("AA108", "Cheyenne",  "Louiseville", 521.43, 22, 6); 
    flight[8] = new Flight("AA109", "Louiseville", "Buffalo",  452.21, 22, 6); 
    flight[9] = new Flight("AA100", "Anchorage", "Tampa",  874.72, 22, 6); 
} 

В качестве альтернативы, вы можете объявить массив в одной строке, например:

private Flight[] flight = {new Flight("AA101", "Boston", "Sacremento", 421.33, 22, 6), 
          new Flight("AA102", "Lincolin", "Jacksonville", 612.08, 22, 6), 
          /* The rest of your flights */ 
          new Flight("AA100", "Anchorage", "Tampa", 874.72, 22, 6)}; 

Это перемещает все Flight декларации, и заполнение массива, в объявление самого массива. Это позволяет инициализировать его, не перемещая его в метод. Для получения дополнительной информации вы можете read this. Конечный результат будет таким же, но это немного более сжатый и менее подверженный ошибкам способ записи. Это также облегчает изменение позже, если вы решите, что содержимое массива будет чем-то другим.

0

использовать квадратные скобки вместо фигурных скобок для 5 и 6 элементов

0

У вас есть много опечаток, и все языки программирования очень неумолимые об опечатках.

Другой подход:

private Flight[] flight = new Flight[] { 
    new Flight("AA101", "Boston", "Sacremento", 421.33, 22, 6), 
    new Flight("AA102", "Lincolin", "Jacksonville", 612.08, 22, 6), 
    new Flight("AA103", "Rochester", "Columbia", 510.83, 22, 6), 
    new Flight("AA104", "Boise", "Aspen", 411.12, 22, 6), 
    new Flight("AA105", "Fort Collins", "Louiseville", 654.22, 22, 6), 
    new Flight("AA106", "Seattle", "Dallas", 326.14, 22, 6), 
    new Flight("AA107", "Phoenix", "Little Rock", 974.22, 22, 6), 
    new Flight("AA108", "Cheyenne", "Louiseville", 521.43, 22, 6), 
    new Flight("AA109", "Louiseville", "Buffalo", 452.21, 22, 6), 
    new Flight("AA100", "Anchorage" , "Tampa", 874.72, 22, 6) 
}; 
Смежные вопросы