Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException

dapzoo

Mitglied
Hallo, hab ein kleines Problem.

Ich erstell die Klasse, von welcher ich später Objekte erzeugen möchte.
Code:
public class Flugzeug {
 
   String bezeichnung;
   double laenge;
   int kapazitaet;
   double geschwindigkeitKmh;
   double verbrauch100km;
   double gewichtBeladen;
   double gewichtUnbeladen;

Erzeuge mehrere dieser Objekte als Arrays.
Code:
public class Flug {
   public static void main(String[] args) {
    
       Flugzeug[] flugzeug = new Flugzeug[10];

... und versuche ihnen dann die Werte zuzuteilen (natürlich in der Flug Klasse) ...
Code:
       flugzeug[0].bezeichnung = "Airbus A380";
       flugzeug[0].geschwindigkeitKmh = 800;
       flugzeug[0].gewichtBeladen = 68;
       flugzeug[0].gewichtUnbeladen = 42;
       flugzeug[0].laenge = 50;
       flugzeug[0].verbrauch100km = 20000;
       flugzeug[0].kapazitaet = 850;

Beim Kompilieren erhalte ich folgende Meldung:

Exception in thread "main" java.lang.NullPointerException
at Flug.main(Flug.java:7)

Was mache ich falsch? Kann ich auf diese Weise überhaupt mehrere Objekte erzeugen, oder darf ein Array nur einen Wert enthalten?

EDIT:

Ich habe außerdem nun versucht, die Objekte einzeln, in der main Klasse dann via Konstruktor zu erstellen, bei dem ich die Werte als Parameter angebe.

Code:
       Flugzeug airbusA380 = new Flugzeug("Airbus A380",50,850,800,20000,68,42);
       airbusA380.flugzeugInfo();

Der Konstruktor in der Flugzeug Klasse:
Code:
    Flugzeug(String bezeichnung,double laenge, int kapazitaet, double geschwindigkeitKmh, double verbrauch100km, double gewichtBeladen, double gewichtUnbeladen){
       this.laenge = laenge;
       this.kapazitaet = kapazitaet;
       this.geschwindigkeitKmh = geschwindigkeitKmh;
       this.bezeichnung = bezeichnung;
       this.verbrauch100km = verbrauch100km;
       this.gewichtBeladen = gewichtBeladen;
       this.gewichtUnbeladen = gewichtUnbeladen;

Auch hier bekomme ich eine Fehlermeldung beim Kompilieren:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at Flug.main(Flug.java:3)
 
Zuletzt bearbeitet:
Erzeuge mehrere dieser Objekte als Arrays.
Nicht ganz. Du erstellst ein Flugzeug-Array. Alle diese Elemente des Arrays sind aber am Anfang null weil du die Elemente nicht initialisierst.
Bedeutet bevor du auf flugzeug[0].bezeichnung zugreifst, musst du das Element initialisieren. flugzeug[0] = new Flugzeug() ;

BTW: Anstatt jedes Mal die Elemente per Hand zu setzen solltest du a) die Attribute private machen (Geheimnisprinzip), ggf Getter & Setter bereitstellen und b) einen geeigneten Konstruktor bereitstellen
 
Nicht ganz. Du erstellst ein Flugzeug-Array. Alle diese Elemente des Arrays sind aber am Anfang null weil du die Elemente nicht initialisierst.
Bedeutet bevor du auf flugzeug[0].bezeichnung zugreifst, musst du das Element initialisieren. flugzeug[0] = new Flugzeug() ;

BTW: Anstatt jedes Mal die Elemente per Hand zu setzen solltest du a) die Attribute private machen (Geheimnisprinzip), ggf Getter & Setter bereitstellen und b) einen geeigneten Konstruktor bereitstellen
Ah, dankesehr. Zu dem Tipp: Sieh dir den Edit in meinem Beitrag bitte einmal an, ich versuchte es mit einem Konstruktor, doch da ist auch irgendwas schief gelaufen. :/
 

Zurück
Oben