Vorlesung Informatik 1 - Teil A: Java Kurs
1.5 Konstruktor, this und super
Wenn wir mit new ein Objekt erzeugen, wird jedesmal eine spezielle Methode gerufen, welche das Objekt initialisiert: der Konstruktor.Konto k1 = new Konto();
Ein Konstruktor ist eine spezielle Instanzmethode:
- sie heißt so wie die Klasse, d.h. sie beginnt nicht wie üblich mit einem Kleinbuchstaben
- sie hat keinen return-Typ
- Klassen können mehrere Konstruktoren haben, die sich in der Anzahl und/oder dem Typ der
Parameter unterscheiden.
Man nennt das überladene Konstruktoren.
Die Klasse javax.swing.JFrame hat mehrere Konstruktoren, z.B.:
JFrame fenster1 = new JFrame("Beispiel 1"); // erzeugt ein Anwendungsfenster mit dem Titel "Beispiel1"
JFrame fenster2 = new JFrame(); // erzeugt ein Anwendungsfenster ohne Titel - Ein Konstruktor ohne Parameter heißt Standardkonstruktor.
- Hat ein Konstruktor einen oder mehrere Parameter nennen wir ihn allgemeinen Konstruktor
- Wir definieren Konstruktoren wie normale Methoden:
public class Konto{
private int kontoNummer, saldoCent; // Instanzvariablen
public Konto(int nummer){ // ein allgemeiner Konstruktor
this.kontoNummer = nummer; // this.kontoNummer ist die Instanzvariable, nummer der Parameter
this.saldoCent = 500; // ein Neukunde bekommt 5 Euro gutgeschrieben
} - Ein Konstruktor initialisiert ein Objekt. Prüfen Sie, ob ihr Konstruktor alke Instanzvariablen mit Anfagnswerten belegt.
- Das Schlüsselwort this zeigt auf das Objekt, für das der Konstruktor gerufen wurde (mit new).
- Will man den Konstruktor der Basisklasse rufen, verwendet man super:
class Girokonto extends Konto{
private int limit; // zusaetzliche Eigenschaft
public Girokonto(int kontoNummer){ // Konto ohne Überziehungskredit
super(kontoNummer); // initialisiert Objekt der Basisklasse
limt=0;
}
public GiroKonto(int kontoNummer, int limit) // Konto mit Überziehungskredit
super(kontoNummer);
this.limit = limit;
}