Взял тут в руки книжку (Кен Арнольд, Джеймс Гослинг - Язык программирования 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 ...
Подскажите, что происходит?
Как тебе уже сказали тебе нужно инициализировать каждый объект из созданного массива перед его использованием. Просто создай цикл такого вида:
for(int i = 0; i < fibonnaciItems.length(); i++) {
fibonnaciItems[i] = new FibonnaciItem();
}
и дальше делай с ним что хочешь.
Продвижение своими сайтами как стратегия роста и независимости