Konstruktor: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Category:Informatik Category:J1 Ein Konstruktor ist eine spezielle Methode einer Klasse. Allgemein können Methoden jederzeit aufgerufen werde…“) |
(kein Unterschied)
|
Aktuelle Version vom 7. Dezember 2015, 15:31 Uhr
Ein Konstruktor ist eine spezielle Methode einer Klasse. Allgemein können Methoden jederzeit aufgerufen werden, ein Konstrukter demhingegen wird automatisch aufgerufen, sobald wir das Objekt anlegen. Das wird auch angedeutet mit den runden Methodenklammern beim Anlegen eines Objektes:
Meineklasse t = new Meineklasse();
Wird kein Konstruktor explizit programmiert, so wird von Java automatisch intern ein Standardkonstruktor angelegt.
Inhaltsverzeichnis
Funktion
Da der Konstruktor automatisch beim Anlegen des Objektes aufgerufen wird, eignet dieser sich hervorragend für die Initialisierung eines Objektes, d.h. die Festlegung der Standardwerte.
Programmierung
Der Konstruktor kann wie eine normale Methode programmiert werden mit folgenden Ausnahmen:
- der Methodenname ist identisch mit dem Klassennamen
- der Konstruktor hat keinen Rückgabetyp, auch nicht
void
! - der Konstruktor muss natürlich
public
sein
Beispiel ohne Parameter
Soll beim Anlegen eines Bankkontos automatisch ein Startguthaben auf das Konto gebucht werden, so kann dies mit dem Konstruktor erledigt werden:
public class Bankkonto { private double guthaben; public Bankkonto() { guthaben = 5; // Startwert festlegen } }
Beim Anlegen eines Bankkontos mit Bankkonto k = new Bankkonto();
wird nun dieser Konstruktor aufgerufen und darin das Guthaben auf 5 (z.B. Euro) gesetzt.
mit Parametern
Zusätzlich kann es vorkommen, dass beim Anlegen eines Objektes direkt bestimmte Attribute festgelegt werden sollen. Bei einem Bankkonto könnte dies beispielsweise die Kontonummer sein.
Diese Kontonummer soll natürlich von allen Bankkonten unterschiedlich sein, deshalb können wir diese nicht fest in unserem Konstruktor einprogrammieren, wie wir das oben mit dem Startguthaben gemacht haben.
Vielmehr soll beim Anlegen eines Kontos die Kontonummer als Parameter mit angegeben werden. Deshalb muss zum einen der Konstruktor diese Parameter übernehmen (wie eine normale Methode), zum anderen muss beim Anlegen des Kontos den Wert für diesen Parameter (also die Kontonummer) mit angegeben werden.
Beispiel mit Parametern
public class Bankkonto { private double guthaben; private int kontonummer; public Bankkonto(int ktonr) { guthaben = 5; // Startguthaben festlegen kontonummer = ktonr; // Kontonummer speichern } } public class Test { public static void main(String[] args) { Bankkonto k = new Bankkonto( 12345 ); // Kontonummer als Parameter angegeben } }
Hinweis: Zu beachten ist hierbei noch, dass im Konstruktor der Parametername ktonr
nicht gleich sein darf wie der Attributname kontonummer
. Mehr dazu im Kapitel Sichtbarkeit von Variablen.