Java - упражнение с массивом

224
21 августа 2017, 07:51

Взял тут в руки книжку (Кен Арнольд, Джеймс Гослинг - Язык программирования JAVA), и застрял в самом начале.

Задачка выглядит так:

Упражнение 1.9

Измените приложение Fibonacci так, чтобы числа Фибоначчи сохранялись в массиве. Для этого создайте новый класс для хранения самого числа и логического значения, являющегося признаком четности, после чего создайте массив для ссылок на объекты этого класса.

Попытался реализовать:

public class Fibonacci {
static final int MAX_NUMBERS = 10;

public static void main(String[] args) {
    FibonacciItem[] fibonacciItems = new FibonacciItem[MAX_NUMBERS];
    fibonacciItems[0].number = 1;
    //more code...
}
class FibonacciItem {
    public int number = 1;
    public boolean is_even() {
        return this.number % 2 == 0;
    }
}
}

И внезапно расстроился, получив NullPointerException на строке

fibonacciItems[0].number = 1;

Кроме того, IDEA любезно подсвечивает предыдущую строку сообщением

Contents of array "fibonacciItems" are read, but newer written to ...

Подскажите, что происходит?

Answer 1

Как тебе уже сказали тебе нужно инициализировать каждый объект из созданного массива перед его использованием. Просто создай цикл такого вида:

for(int i = 0; i < fibonnaciItems.length(); i++) { 
  fibonnaciItems[i] = new FibonnaciItem(); 
}

и дальше делай с ним что хочешь.

READ ALSO
Слетела кодировка в Sublime Text и на сайте

Слетела кодировка в Sublime Text и на сайте

Слетела кодировка ,стоит utf-8,а щас просто вопросикиОткрыл файл ,чтобы просто картинки в HTML поменять и слетела кодировка,я сохранил и она на сайте...

308
Не загружаются все данные при переходе с одной сцены в другую

Не загружаются все данные при переходе с одной сцены в другую

Есть 2 сцены, первая меню а вторая сама игра, есть масcив которому даю значения через едитор, если запускаю сразу сцену игры то всё нормально...

387
Вывести очень много строк через GridView ASP

Вывести очень много строк через GridView ASP

Есть простое ASP приложение на котором нужно вывести очень большую таблицуНа форме расположен грид вью:

277
Ошибка при десериализации json

Ошибка при десериализации json

Пытаюсь десериализовать json в класс, но выдает ошибку "Не удается преобразовать объект типа "SystemBoolean" в тип "Sell_Offers"" Хочу получить доступ к offers

323