Konstruktor und Destruktor

Konstruktor

Konstruktoren initialisieren eine Klasse. Sobald eine neue Klasseninstanz angelegt wird, erfolgt die Einbindung des Konstruktors. Dabei heißt ein Konstruktor so, wie die umgebende Klasse und hat keinen Rückgabewert also noch nicht einmal void. Der Aufbau eines Konstruktors ist einfach: Klassename(Parameter) {.....}. Innerhalb des Blocks können Anweisungen reingeschrieben werden, welche bei der Initialisierung direkt ausgeführt werden.

Wenn in der Klasse überhaupt keinen Konstruktor angeben wird, legt der Compiler automatisch einen an (default Konstructor), welcher keine Anweisungen enthält.

Destruktor

Der Destruktor ist das Gegenteil vom Konstruktor, er räumt hinter einer Klasseninstanz wieder auf. Der Destruktor hat die Aufgabe, nicht mehr benötigte und referenzierte Objekte zu beseitigen und damit den Ressourcenverbrauch des Programms in Grenzen zu halten. Der Aufbau des Destruktors ist ebenfalls einfach: protected void finalize() {.....}. Innerhalb des Blocks Anweisungen reingeschrieben werden, welche nach dem Ende der Klasse bzw nach nicht mehr Verwenden des Objektes direkt ausgeführt werden. Im Normalfall ist es nicht nötig deinen Destruktor zu schreiben, da beim Kompilieren vom Compiler dieser selbstständig, als default Destruktor eingebunden wird.

Main

Konstruktor&Destruktor Main

Zeile 5: Es wird ein Objekt vom Typ Auto erzeugt. Bei der Erzeugung des Objektes werden direkt die Parameter für den Konstruktor mitgegeben.

Zeile 7-8: Es werden die Variablen des Objektes Auto a1 , mit den nun vom Konstruktor geänderten Werten, ausgegeben,

Zeile 10: Als Beispiel wird hier manuell die Methode des Destruktors aufgerufen. Dies ist im Normalfall nicht nötig, da die Methode irgendwann vom Programm, nach dem nicht nochmaligen Verwenden des Objektes, automatisch aufgerufen wird.

Objekt Klasse

Konstruktor&Destruktor Klasse

Zeile 3-5: Dies sind die Variablen des Objektes Auto.

Zeile 8: Es wird ein Konstruktor erstellt, welcher 3 Übergabewerte bekommt. Wie in der Definition schon erwähnt muss der Konstruktor genauso heißen wie die Klasse. Die Methode des Konstruktors wird mit erstellen eines Objektes vom Typ Auto ausgeführt.

Zeile 9-11: Hier werden die an dem Konstruktor Übergebenen Werte, in den Variablen des Objektes Auto gespeichert.

Zeile 15-16: Hier sieht man einen von Hand geschriebenen Destruktor, da dieser beim nicht mehr verwenden bzw. beim zerstören des Objektes noch etwas ausführen soll. In diesem Fall soll ein System.out.println ausgeführt werden.