• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co poprawić w tym zadaniu?

Object Storage Arubacloud
+1 głos
197 wizyt
pytanie zadane 7 listopada 2015 w Java przez uczeń1998 Obywatel (1,930 p.)

http://www.jkozak.pl/przedmioty/java/zadania7.pdf

 

błąd:

Exception in thread "main" java.lang.NullPointerException
    at Zamówienie.toString(Zamówienie.java:28)
    at Test.main(Test.java:7)

 

public class Pozycja {

  

    String nazwaTowaru;

    int ileSztuk;

    double cena;

     

    public Pozycja(double cena, int ileSztuk, String nazwaTowaru){

        this.cena=cena;

        this.ileSztuk=ileSztuk;

        this.nazwaTowaru=nazwaTowaru;

    }

     

    double obliczWartosc(){

        return this.cena*this.ileSztuk;

    }

     

    public String toString(){

        String a="";

       a+=nazwaTowaru;

       return a;

    }

}



___________________________________________





public class Zamówienie {

     

  Pozycja[] pozycje;

  int ileDodanych=0;

  int maksRozmiar;

  double suma;

  public Zamówienie(){

      maksRozmiar=10;

      pozycje = new Pozycja[maksRozmiar];

  }

   

  public void dodajPozycje(Pozycja p){

      pozycje[ileDodanych]=p;

  }

   

  double ObliczWartosc(){

      suma=0;

      for(Pozycja p: pozycje){

          suma+= p.obliczWartosc();

      }

      return suma;

  }

   

  public String toString(){

      String a="";

       for(Pozycja p: pozycje){

          a+=(p.toString());

       }

       a+="Wartość zamówienia wynosi" + ObliczWartosc();

       return a;

     }

       

   

}

__________________________________________________



public class Test {

 public static void main(String[] args){

     Pozycja a = new Pozycja(3.20, 2, "kupa");

     Zamówienie z = new Zamówienie();

     z.dodajPozycje(a);

     System.out.println(z.toString());

 }

}

 

1 odpowiedź

+1 głos
odpowiedź 7 listopada 2015 przez Javowiec Pasjonat (21,560 p.)
wybrane 7 listopada 2015 przez uczeń1998
 
Najlepsza

NullPointerException jest wyrzucany, gdy odczytujesz lub zmieniasz obiekt, który jest nullem.

Zauważ co robisz:

  1. Tworzysz tablicę o rozmiarze 10 w klasie Zamówienie.
  2. Gdy dodajesz pozycję, zawsze dodajesz ją w miejsce 0 tablicy.
  3. W metodzie toString iterujesz po całej tablicy (10 miejsc), ale tylko te 1 (zerowe) nie jest nullem.
komentarz 7 listopada 2015 przez uczeń1998 Obywatel (1,930 p.)
Dziękuję działa ;)

btw. Myślałem że for each jeśli nie ma obiektu w tablicy to przechodzi tylko przez wszystkie miejsca które są wypełnione, ale jak widać trzeba czasami porzucić teorię i zacząć ćwiczyć :D
komentarz 7 listopada 2015 przez uczeń1998 Obywatel (1,930 p.)
PS. Chyba lepiej jest to zrobić na liście zamiast na tablicy?
komentarz 7 listopada 2015 przez Javowiec Pasjonat (21,560 p.)

Tak, też mi to przeszło przez myśl laugh

Podobne pytania

0 głosów
1 odpowiedź 467 wizyt
pytanie zadane 22 listopada 2015 w Java przez uczeń1998 Obywatel (1,930 p.)
0 głosów
2 odpowiedzi 189 wizyt
pytanie zadane 29 września 2015 w Java przez uczeń1998 Obywatel (1,930 p.)
0 głosów
5 odpowiedzi 424 wizyt
pytanie zadane 23 listopada 2016 w HTML i CSS przez lapa19904 Stary wyjadacz (11,560 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...