n = skener.nextInt();
В этой строке вы принимаете значение int через ваш ввод. Скажем 5; Итак, n = 5;
В этой строке =>
artikli[n] = new Artikli(naslov, opis, cijena);
вы пытаетесь получить доступ к индексу artikli [5], однако размер вашего массива равен 0. Вы инициировали перед этим массивом с n = 0, поскольку вы не инициализировали 'n', неинициализированная переменная int будет по умолчанию 0 =>
private static int n; //which is 0 by dafault
Artikli[] artikli = new Artikli[n]; // creates an array named artikli of size 0
сначала вам нужно инициализировать массив до соответствующего размера, затем вы сможете получить доступ ваш индекс Artikli [n].
Быстрое решение:
replace -> Artikli[] artikli = new Artikli[n];
with this-> Artikli[] artikli = new Artikli[1000];
при условии, что ваш ввод int будет меньше 1000, чтобы вы могли получить доступ к индексу artikli [от 0 до 999]
Я пытался объяснить как можно более подробно. Если у вас возникли какие-либо сомнения, прокомментируйте.