Cześć, aktualnie piszę zadanie dotyczące zamówień, na pewnym etapie natknąłem się na pewien problem, tzn. wyskakuje mi błąd wskazujący na linijkę związaną z dodawaniem obiektów do tablicy, ale za bardzo nie wiem o co chodzi, dlatego tu jestem :P. Program składa się z 2 klas Zamówienie oraz Pozycja. Oto kod:
Klasa Pozycja
package zamówienie;
public class Pozycja {
String nazwaTowaru;
int ileSztuk;
double cena;
static int IloscPozycji = 0;
Pozycja(String nazwaTowaru, int ileSztuk, double cena)
{
this.nazwaTowaru = nazwaTowaru;
this.ileSztuk = ileSztuk;
this.cena = cena;
IloscPozycji++;
}
public double obliczWartosc()
{
return (ileSztuk * cena);
}
public String toString1()
{
String text = nazwaTowaru + " " + cena + " zł" + ileSztuk + " szt. " + obliczWartosc() + " zł";
return text;
}
}
Klasa Zamówienie:
package zamówienie;
public class Zamówienie {
int ileDodanych = 0;
int maksRozmiar;
Pozycja pozycje[] = new Pozycja[maksRozmiar];
public Zamówienie()
{
maksRozmiar = 10;
}
public Zamówienie(int liczba)
{
maksRozmiar = liczba;
}
public void dodajPozycje(Pozycja p)
{
pozycje[ileDodanych] = p;
ileDodanych++;
}
public double obliczWartosc()
{
int suma = 0;
for(int i=0; i< ileDodanych; i++)
{
suma += pozycje[i].obliczWartosc();
}
return suma;
}
public String toString1()
{
String text = "";
for(int i=0; i<ileDodanych;i++)
{
text += (pozycje[i].toString1() + "\n");
}
return text;
}
public static void main(String[] args) {
Pozycja p1 = new Pozycja("Deska",4, 4.50);
Pozycja p2 = new Pozycja("Meble",4, 4.50);
Pozycja p3 = new Pozycja("Ciasto",4, 4.50);
Zamówienie Z1 = new Zamówienie();
Z1.dodajPozycje(p1);
Z1.dodajPozycje(p2);
Z1.dodajPozycje(p3);
System.out.println(Z1.obliczWartosc());
}
}
Bład, który wyskakuję brzmi następująco:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at zamówienie.Zamówienie.dodajPozycje(Zamówienie.java:21)
at zamówienie.Zamówienie.main(Zamówienie.java:56)
Bardzo proszę o pomoc, dzięki !!!