Saubere Initialisierung im Konstruktor

Luk10

Top Contributor
Grüße,

Ich habe ein kleines Problem: Ich brauche eine saubere Lösung um beim Erstellen von Objekten Instanzvariablen zuzuweisen:

Java:
public abstract class Sprite {

  protected BufferedImage image;
  protected int animationRate;

    public Sprite(BufferedImage im, animationRate aR) {
      image = im;
      animationRate = aR;
    }
}

Die Unterklasse:

Java:
public class ExampleSprite extends Sprite {
    public ExampleSprite() {
      super(...); //Hier entsteht das Problem!
    }
}

Ich möchte das Image per Methode zurückgeben lassen. Leider muss ich ja
Code:
super
als erstes Aufrufen. Deshalb funktioniert das nicht.

Wie kann ich das sauber lösen, wenn ich mir das Image/aR erst per Methode in a) Der Klasse ExampleSprite und b) per Statische Methode einer anderen Klasse geben lasse?

Sollte ich einfach in Sprite null setzten und dann im nachhinein zuweisen? Oder sollte man sowas nicht machen?

Danke,
-Luk-
 

Luk10

Top Contributor
Ich kenne das (abstract Method) Factory Pattern ... ist aber ziemlich aufwenig ... Gibt es da keine bessere / einfachere Lösung?
Aber wenn das das sauberste ist werde ich es wohl so umsetzten.

Andere Ratschläge?

Danke,
-Luk-
 

Andi_CH

Top Contributor
Wenn in der Superklasse expilizit steht
Java:
public Sprite(BufferedImage im, animationRate aR) ...
wird damit ausgesagt, dass kein Objekt erzeugt werden kann ohne dass im und aR angeben werden - PUNKT.

Also gib im superaufruf die obligatorischen Parameter an und alles ist ok.

Oder dann musst du die Vaterklasse abändern, dass sie eine default-Konstruktor hat ...

(Du solltest nicht in einer Klasse zwingend etwas fordern und dich dann eine Klasse weiter unten aufregen, dass genau das gefordert ist :D )

Wie wärs mit
Java:
public class ExampleSprite extends Sprite {
    public ExampleSprite() {
      super(null, 0);
    }
}

ob das sinnvoll ist, kannst nur du beurteilen.
 
Zuletzt bearbeitet:
M

maki

Gast
Ich kenne das (abstract Method) Factory Pattern ... ist aber ziemlich aufwenig ... Gibt es da keine bessere / einfachere Lösung?
Aber wenn das das sauberste ist werde ich es wohl so umsetzten.

Andere Ratschläge?
Ich rate dir, den Link zu lesen bevor du ihn kommentierst ;)

Factory Mehtoden sind auch nicht schwieriger als Konstruktoren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Best Practice Saubere Verbindung zwischen API und Business Layer mit DTO's Java Basics - Anfänger-Themen 2
D Best Practice Testdaten. Was ist eine saubere Lösung? Java Basics - Anfänger-Themen 3
S Saubere Implementierung Java Basics - Anfänger-Themen 2
T Objektübergabe - saubere Lösung? Java Basics - Anfänger-Themen 3
L Saubere Programmbeendung (Konsole) Java Basics - Anfänger-Themen 7
C Frage zu try - catch (saubere Lösung?) Java Basics - Anfänger-Themen 3
K Saubere Ausgabe in HTML Java Basics - Anfänger-Themen 5
D Initialisierung von Klassen-Objekte Java Basics - Anfänger-Themen 3
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
B Klassen Ungültige Objektzustände bei der Initialisierung Java Basics - Anfänger-Themen 2
A OOP und Initialisierung Java Basics - Anfänger-Themen 5
J Klassen Deklaration und Initialisierung Java Basics - Anfänger-Themen 15
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
T Erste Schritte Frage zur Initialisierung eines Mehrdimensionalen Arrays Java Basics - Anfänger-Themen 3
R Erste Schritte Deklaration und Initialisierung von Arrays Java Basics - Anfänger-Themen 21
A Variablen Variable soll ihren Wert nach Initialisierung nicht mehr ändern Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
M Deklaration und Initialisierung bei Method Erstellung Java Basics - Anfänger-Themen 12
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
F Erste Schritte Frage zur Initialisierung Java Basics - Anfänger-Themen 4
S Initialisierung von Klassenvariablen Java Basics - Anfänger-Themen 7
D Problem mit Initialisierung und Reihenfolge Java Basics - Anfänger-Themen 10
J Initialisierung Array-Liste Java Basics - Anfänger-Themen 3
S Object Initialisierung Java Basics - Anfänger-Themen 7
F Variable ohne Initialisierung in For Schleife Java Basics - Anfänger-Themen 5
B Initialisierung von Zeichenpanel Java Basics - Anfänger-Themen 3
D Datentypen Felder: Deklaration und Initialisierung Java Basics - Anfänger-Themen 5
M Variablen Initialisierung von Arrays Java Basics - Anfänger-Themen 7
K Datentypen Default Initialisierung Java Basics - Anfänger-Themen 8
P Initialisierung einer 5*5 Matrix mit best. Werten Java Basics - Anfänger-Themen 2
V Datentypen Array Initialisierung funktioniert nicht Java Basics - Anfänger-Themen 3
B Fragen zur Initialisierung/Zuweisung der Variable + Packages erstellen Java Basics - Anfänger-Themen 4
S jTree initialisierung Java Basics - Anfänger-Themen 4
G Initialisierung + alte Werte Java Basics - Anfänger-Themen 7
F "Initialisierung der VM fehlgeschlagen. res=-4 jvm is n Java Basics - Anfänger-Themen 5
P Grundsätzliches zur String-Initialisierung Java Basics - Anfänger-Themen 2
M String Initialisierung Java Basics - Anfänger-Themen 5
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
T Unterschied Initialisierung von Klassen Java Basics - Anfänger-Themen 3
H String initialisierung Java Basics - Anfänger-Themen 9
A array nach initialisierung final machen? Java Basics - Anfänger-Themen 17
M Initialisierung Java Basics - Anfänger-Themen 4
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben