Как я могу установить длину массива в значение поля в том же классе?

#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];
}