#java #arrays #field
#java #массивы #поле
Вопрос:
Я сделал значение поля maxSeats таким, чтобы представлять максимальное количество мест, которое будет находиться в основном классе, вот так. Основной класс:
public static void main(String[] args) {
Student a = new Student("Abigail", 1, 5);
Student b = new Student("Benny", 1, 6);
Student c = new Student("Charles", 1, 10);
Student d = new Student("Denise", 2, 12);
Student e = new Student("Eleanor", 2, 9);
Student f = new Student("Fred", 2, 5);
SchoolBus sb1 = new SchoolBus(3, 1);
SchoolBus sb2 = new SchoolBus(3, 2);
sb1.getRemainSeat();
sb1.addStudent("Benny", 1, 6);
}
Другой класс:
private int maxSeats;
private int routeNum;
String[] studentArray = new String[3];
public SchoolBus(int mS, int rN){
mS = maxSeats;
rN = routeNum;
}
И я хочу, чтобы поле studentArray имело длину maxSeats, но, похоже, это устанавливает длину массива в 0, и я получаю ошибку outofboudary. Есть ли какой-либо способ правильно установить длину массива в значение поля в том же классе?
Комментарии:
1. Вы имели в виду сделать
maxSeats = mS;
иrouteNum = rN;
?
Ответ №1:
1) Вам нужно создать свой массив после определения значения переменной maxSeats
.
2) Вы устанавливаете значения в своем конструкторе в обратном порядке.
Попробуйте это:
private int maxSeats;
private int routeNum;
String[] studentArray;
public SchoolBus(int mS, int rN){
maxSeats = mS;
routeNum = rN;
studentArray = new String[maxSeats]; //Define an array of length [maxSeats]
}
Ответ №2:
вот так?
String[] studentArray ;
public SchoolBus(int mS, int rN){
mS = maxSeats;// this it the wrong way around
maxSeats= mS; // this ist the way to go!
rN = routeNum;
studentArray = new String[mS];
}