Lernpfad:Objektorientierte Programmierung mit Java/Der Konstruktor: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Navigation}} | {{Navigation}} | ||
Der ''Konstruktor'' einer Klasse ist eine spezielle {{Pfad|Methoden|Methode}}, die beim {{Pfad|Objekte erstellen|Erstellen einer Objektinstanz}} der Klasse als | Der ''Konstruktor'' einer Klasse ist eine spezielle {{Pfad|Methoden|Methode}}, die beim {{Pfad|Objekte erstellen|Erstellen einer Objektinstanz}} der Klasse als Erstes aufgerufen wird, um den Zustand des Objektes zu initialisieren. | ||
== Aufbau eines Konstruktors == | == Aufbau eines Konstruktors == | ||
Zeile 21: | Zeile 21: | ||
Zunächst hat ein Konstruktor niemals einen Rückgabewert. Daher wird der {{Pfad|Parameter und Rückgaben|Rückgabetyp}} bei der Deklaration des Konstruktors weggelassen. | Zunächst hat ein Konstruktor niemals einen Rückgabewert. Daher wird der {{Pfad|Parameter und Rückgaben|Rückgabetyp}} bei der Deklaration des Konstruktors weggelassen. | ||
Dann darf der Bezeichner nicht frei gewählt werden, sondern muss exakt (auch Groß- und Kleinschreibung) dem Namen der Klasse entsprechen. | |||
Das Beispiel oben zeigt, wie ein Konstruktor für die Klasse <code>Addierer</code> aussehen könnte. | Das Beispiel oben zeigt, wie ein Konstruktor für die Klasse <code>Addierer</code> aussehen könnte. | ||
== Konstruktoren überladen == | |||
Genauso wie {{Pfad|Methoden#Methoden überladen|Methoden}} können Konstruktoren ''überladen'' werden. Das bedeutet, eine Klasse darf mehrere Konstruktoren enthalten, die sich an der Anzahl und Datentypen der Parameter unterscheiden. | |||
<syntaxhighlight lang="java" line=1> | |||
public class Addierer { | |||
private int ersterSummand; | |||
// Konstruktor | |||
public Addierer( int pErsterSummand ) { | |||
ersterSummand = pErsterSummand; | |||
} | |||
// Zweiter Konstruktor | |||
public Addierer( int pErsterSummand, int pNochEinSummand ) { | |||
ersterSummand = pErsterSummand + pNochEinSummand; | |||
} | |||
// Dritter Konstruktor | |||
public Addierer( String pEinString ) { | |||
ersterSummand = Integer.parseInt(pEinString); | |||
} | |||
public int addieren( int pZweiterSummand ) { | |||
return ersterSummand + pZweiterSummand; | |||
} | |||
} | |||
</syntaxhighlight> | |||
{{Inhalt/Übersicht}} |
Aktuelle Version vom 7. Februar 2022, 23:28 Uhr
Der Konstruktor einer Klasse ist eine spezielle Methode, die beim Erstellen einer Objektinstanz der Klasse als Erstes aufgerufen wird, um den Zustand des Objektes zu initialisieren.
Aufbau eines Konstruktors
Ein Konstruktor ist ähnlich wie andere Methoden aufgebaut, hat aber einige Besonderheiten.
public class Addierer {
private int ersterSummand;
// Konstruktor
public Addierer( int pErsterSummand ) {
ersterSummand = pErsterSummand;
}
public int addieren( int pZweiterSummand ) {
return ersterSummand + pZweiterSummand;
}
}
Zunächst hat ein Konstruktor niemals einen Rückgabewert. Daher wird der Rückgabetyp bei der Deklaration des Konstruktors weggelassen.
Dann darf der Bezeichner nicht frei gewählt werden, sondern muss exakt (auch Groß- und Kleinschreibung) dem Namen der Klasse entsprechen.
Das Beispiel oben zeigt, wie ein Konstruktor für die Klasse Addierer
aussehen könnte.
Konstruktoren überladen
Genauso wie Methoden können Konstruktoren überladen werden. Das bedeutet, eine Klasse darf mehrere Konstruktoren enthalten, die sich an der Anzahl und Datentypen der Parameter unterscheiden.
public class Addierer {
private int ersterSummand;
// Konstruktor
public Addierer( int pErsterSummand ) {
ersterSummand = pErsterSummand;
}
// Zweiter Konstruktor
public Addierer( int pErsterSummand, int pNochEinSummand ) {
ersterSummand = pErsterSummand + pNochEinSummand;
}
// Dritter Konstruktor
public Addierer( String pEinString ) {
ersterSummand = Integer.parseInt(pEinString);
}
public int addieren( int pZweiterSummand ) {
return ersterSummand + pZweiterSummand;
}
}
Klassen und Objekte | Compiler und Interpreter | BlueJ | Syntax und Semantik | Datentypen und Variablen | Objektvariablen | Methoden | Parameter und Rückgaben | Objekte erstellen | Der Konstruktor | Referenzen | Klassenmethoden | Klassen der Java-Bibliothek | Systematisch Fehler suchen | Arrays | Komplexe Arrays | Vererbung | Abstrakte Klassen | Interfaces | Generische Typen | Fehlerbehandlung