Was bedeutet das bei BlueJ?

3 Antworten

Das bedeutet, dass in deinem Konstruktor (<init>) in der Klasse Haus in der Zeile 73 auf eine Variable zugegriffen wurde, die keine Referenz zu irgendeinem Objekt hat, also null war.


Laradrewnick 
Beitragsersteller
 13.10.2019, 13:01

Und wie ändert man das ?

0
oopexpert  13.10.2019, 13:03
@Laradrewnick

Für die Objekterstellung und -zuweisung innerhalb DEINER Klasse bist DU als Entwickler verantwortlich. Das ist Teil der algorithmischen Expertise als Entwickler.

Du musst zusehen, dass der Variablen ein Objekt zugewiesen ist. Warum du gerade dort eine Variable brauchst und warum du auf diese zugreifen musst, kann KEINER dir sagen.

0
Laradrewnick 
Beitragsersteller
 13.10.2019, 13:05
@oopexpert

Ja ist mir schon kalt aber was genau meinen sie mit Variable zuordnen?

0
oopexpert  13.10.2019, 13:12
@Laradrewnick

Als Entwickler adressiert man Speicherbereiche über Variablen, um damit auf die dort gespeicherten Daten zuzugreifen. Eine Variable hat immer einen Namen und MÖGLICHERWEISE einen adressierten Speicherbereich. In deinem Fall adressiert die Variable eben KEINEN Speicherbereich.

In JAVA werden Speicherbereiche für Daten über die Konstruktion von Objekten vorbereitet. Das passiert üblicherweise über das Schlüsselwort "new" . Wenn du also "new Maus()" schreibst, wird ein Speicherbereich vorbereitet und du erhälst eine Referenz zurück. Der kannst du dann einen Namen geben:

Maus maus = new Maus().

Bei dir hat entweder keine Zuweisung stattgefunden oder bei dir steht irgendetwas mit...

Maus maus = null;

In beiden Fällen wirst du eine NullpointerException bekommen, wenn zu folgendes machst:

maus.laufe();

0

Eine Suche nach "java nullpointerexception" bei der Suchmaschine deines Vertrauens dürfte ziemlich aufschlussreich sein. Was in deinem konkreten Fall schief gelaufen ist, kann man wohl erst sagen, wenn man deinen Code (um Zeile 73 herum) gesehen hat.

Die Meldung bedeutet, dass du auf eine Variable zugreifst, der du noch keinen Wert zugewiesen hast.

Ist also ein logischer Fehler deinerseits im Programm.