StandardKonstruktor ohne Parameter - nullPointerExeption!

Rudi_123

Mitglied
Hallo,

ich benötige dringend Hilfe!
Muss bis morgen eine Aufgabe einreichen und weiß nicht weiter.. folgender Hintergrund:

habe mehrere Klassen in einem Package, die stimmen bislang (meldet zumindest das System bei dem ich die Aufgabe einreiche); nun ist in einem zweiten Package die eigentliche Aufgabe; hier importiere ich die Klassen aus dem anderen Package, das passt soweit. Als Vorgabe heißt es in der Aufgabenstellung:
"die Initialisierung der Aufgabe muss ausschließlich in deren Standardkontruktor erfolgen"; dieser ist ohne Attribute angegeben.

Und jetzt mein Dilemma: egal was ich in diesen Standardkonstruktor schreibe ich erhalte eine NullPointerExeption und verstehe nicht, wie ich das umgehen kann 🙁

Mein Code:

Java:
import geometrie.Kreis;
import geometrie.Quader;
import geometrie.Rechteck;
import geometrie.Zylinder;

public class Aufgabe {

  private Rechteck r;
  private Kreis k1;
  private Kreis k2;
  private Kreis k3;
  private Quader q;
  private Zylinder z1;
  private Zylinder z2;
  private Zylinder z3;

  public Aufgabe() {
    //was muss ich hier tun??
  }

  public double umfang() {
    return (2 * r.getLaenge()) + (k1.umfang() / 2) + k2.umfang() + 20;
  }

  public double innererMantel() {
    return q.oberflaeche() - r.flaeche() + z1.oberflaeche() / 2 - k1.flaeche() / 2 + z2.oberflaeche() / 2 - k2.flaeche() / 2 + z3.oberflaeche() / 2 - k3.flaeche() / 2;

  }

  public Quader getQ() {
    return q;
  }

  public Zylinder getZ1() {
    return z1;
  }

  public Zylinder getZ2() {
    return z2;
  }

  public Zylinder getZ3() {
    return z3;
  }
}


Ich wäre sehr dankbar, wenn mir jemand helfen könnte!

Danke und Grüße
Rudi
 
Zuletzt bearbeitet:
Kreis, Rechteck etc. sind zwar deklariert, aber nicht initialisiert. Im Aufgaben-Konstruktor sollte überall r = new Rechteck() etc. stehen.
 
Danke!
Was mache ich aber, wenn ich noch nicht alle Werte habe? In dem Fall zB müsste ich für das Rechteck den Konstruktor new Rechteck(Punkt,b,l) verwenden, aber ich habe ja weder den Punkt, noch Breite noch Länge. Wenn ich diese Werte nun allerdings mit =1 initialisiere krieg ich zwar diese Exeption nicht mehr, aber die errechneten Ergebnisse sind schlichtweg falsch..
 
Ohne die genaue Aufgabenstellung zu kennen bleibt das hier einfach nur ein nicht-zielführendes Ratespiel.
 
Wir kennen deine Aufgabenstellung nicht, daher können wir gerade nur etwas raten.
Vielleicht sollst du innerhalb dieses Konstruktors die Werte vom Benutzer einlesen?
 
Die Aufgabe ist so lang, ich weiß nicht wie ich sie für das Forum hier in Kürze beschreiben soll.. sorry!


Aber bezügl. der Werte vom Benutzer einlesen, wie meinst du das?
 
Du kannst auch einfach alles einstellen und sagen, welche Teile aktuell bearbeitet werden müssen.
Fakt ist, dass die Seitenlängen, whatever irgendwo herkommen müssen. Sonst ist die ganze Aufgabe sinnlos.
 
die frage ist, wie/woher bekommst du die Werte für dein Rechteck oder die anderen figuren, die Parameter zur erstellung benötigen?
 
Man könnte die Aufgabenstellung evtl. auch so deuten, daß du den Standardkonstruktor, der ohne Attribute angegeben ist, ändern sollst. Sonst würde da eher anzugeben stehen anstatt angegeben.
Ansonsten kann man die Elemente gar nicht initialisieren, es sei denn, es gibt irgendwo in deiner Aufgabenstellung Default-Werte für alle Elemente.
 
Schau dir vielleicht mal den Scanner an:
Java:
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
//...
scanner.close();

Vielleicht sollst du ja innerhalb des Konstruktors die Werte einlesen. Das kannst du z.B. mit dem Scanner machen.
 

Zurück
Oben