Tworzenie obiektow za pomoca pętli.

0

Witam,

chcialem utworzyc obiekty za pomoca petli (IDE Netbeans 7.2)

class Ksiazka {
    String tytul;
    String autor;
}

class Test {
    
    public static void main(String[] args) {
        Ksiazka[] mojeKsiazki = new Ksiazka[2];
        int x = 0;

        while (x < 3 ) {
            mojeKsiazki[x] = new Ksiazka();
            mojeKsiazki[x].tytul = "tytul" +x;
            mojeKsiazki[x].autor = "autor" +x;
            System.out.println(mojeKsiazki[x].tytul +x);
            x++;
        }
    }
}

kompilator wyrzuca mi błąd na: mojeKsiazki[x] = new Ksiazka();
i nie mam pojecia dlaczego.

Proszę o pomoc.

ps. jestem początkujący w Javie, więc proszę o wyrozumiałość.

0

Odpowiedź jest prosta - linijka:
Ksiazka[] mojeKsiazki = new Ksiazka[2]
stworzy Ci tablicę o długości 2 - tzn może pomieścić maksymalnie dwa obiekty, oznaczone odpowiednio numerami 0 i 1.

Warunek jest x < 3, a więc program będzie próbował wrzucić obiekty do komórek oznaczonych 0,1 i 2.

Dlatego zrób - dla czytelności - tak:

Na początku dodaj linijkę:
int liczbaKsiazek = 3;

A potem zamień:

Ksiazka[] mojeKsiazki = new Ksiazka[liczbaKsiazek]
i
while (x < liczbaKsiazek){ ...

0

Kod jest poprawny, więc na pewno kompilator nie wyrzuca błędu. Jest natomiast błąd wykonania, skonstruowałeś tablicę dwuelementową i próbujesz do niej upchać trzy elementy.

0

Dzięki za odpowiedź.
Już działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1