Инициализация объявленного массива с помощью конструктора по умолчанию

#arrays #local #private #instantiation #declare

#массивы #Местные новости #Частное #создание экземпляра #объявить

Вопрос:

Прямо сейчас я работаю над упражнением для моей школы. Упражнение просит меня объявить массив как закрытый, а затем создать его экземпляр только через конструктор. Код выглядит следующим образом. Проблема в том, что хранилище работает как локальная переменная, и я хочу использовать его позже. Добавление «this». перед ним не работает. Что я могу сделать?

 public class Mapland extends Thread {
private int groining;
private int[] sepulcher;

public Mapland(int[] b) {
    int[] sepulcher = new int[b.length];

}

public int getGroining() {
    return this.groining;
}

public void run() {
    groining = Integer.MIN_VALUE;
    for (int i = 0; i < sepulcher.length; i  ) {
        if (getGroining() < this.sepulcher[i]) {
            this.groining = this.sepulcher[i];
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
 

Ответ №1:

В конструкторе вы не инициализируете глобальный частный массив, вы создаете новый. Чтобы инициализировать его, вам просто нужно вызвать его без предыдущего (int[]), потому что вы уже объявили его ранее. Ваш код в конструкторе должен быть:

 sepulcher = new int[b.length];