Instanz
Einführung
Wenn ein Objektorientiertes-Programm ausgeführt wird, müssen konkrete Objekte nach dem Bauplan der entsprechenden Klasse erzeugt werden. Diese Objekte werden auch Instanzen genannt. Den Prozess der Objekterzeugung nennt man Instanziierung. In Java wird dabei Speicherplatz für die Variablen des Objektes reserviert, und eine Referenz auf das neu erzeugte Objekt wird möglich. Sie erlaubt den Zugriff auf alle öffentlichen Methoden und Attribute, die im Quelltext der Klasse für Objekte dieser Klasse festgelegt wurden.
Objekterzeugung
Um ein Objekt einer Klasse im Quelltext anzulegen, benutzt man das Schlüsselwort new zusammen mit der Angabe eines Konstruktors dieser Klasse. Als Ergebnis liefert new eine Referenz auf das neue Objekt. Dabei werden folgende Schritte durchlaufen:
Reservierung von Speicherplatz für die Instanzvariablen der Klasse.
Standard-Initialisierung der Instanzvariablen; den Attributen werden abhängig von ihrem Typ Anfangswerte zugewiesen:
Explizite Initialisierung; ist den Variablen bei ihrer Deklaration gleich ein Wert zugewiesen worden, so werden sie nun auf diesen Wert gesetzt.
Der aufgerufene Konstruktor wird ausgeführt. Auch hier können Standardwerte für die Variablen festgelegt werden.
Diese Methode erzeugt eine neue Instanz eines Mitarbeiters und fügt die Instanz der Mitarbeiterliste (ein weiteres Objekt) einer Salon-Instanz zu.
public void erstelleMitarbeiter(String vorname, String nachname){
Mitarbeiter einMitarbeiter = new Mitarbeiter (vorname, nachname);
salon.getMitarbeiterListe().add(einMitarbeiter );
}
Referenzierung
Zu beachten ist, dass einMitarbeiter nicht das Objekt selbst ist. einMitarbeiter stellt nur eine von mehreren möglichen Referenzen auf das neu erzeugte Objekt dar. Es besteht die Möglichkeit in der gleichen oder einer anderen Klasse eine weitere Variable zu deklarieren, die den Wert von einMitarbeiter zugewiesen bekommt und damit das gleiche Objekt wie einMitarbeiter referenziert.
Objektzugriff
Erst wenn das Objekt erzeugt wurde, sind die Instanzvariablen angelegt. Die öffentlichen (Sichtbarkeit public) Attribute und Methoden können dann über die Referenz auf das Objekt angesprochen werden. Dazu wird eine Punktnotation verwendet.
Nicht private Attribute
einMitarbeiter.nachname;
einMitarbeiter ist ein Objekt der Klasse Mitarbeiter. Dieses Objekt einMitarbeiter wird in einem anderen Objekt z.B. der Klasse Salon verwendet. Das Attribut nachname wird in der Klasse Mitarbeiter mit der Sichtbarkeit public deklariert. Es kann also von außen aufgerufen werden. Der Aufruf erfolgt durch den Variablennamen des zu verwendenden Objektes; hier einMitarbeiter. Dann folgt ein Punkt (.) und der Name des öffentlichen Attributes; hier nachname.
Nicht private Methoden
einMitarbeiter ist ein Objekt der Klasse Mitarbeiter. Dieses Objekt einMitarbeiter wird in einem anderen Objekt z.B. der Klasse Salon verwendet. Die Methode getNachname() wird in der Klasse Mitarbeiter mit der Sichtbarkeit public deklariert. Sie kann also von außen aufgerufen werden. Der Aufruf erfolgt durch den Variablennamen des zu verwendenden Objektes; hier einMitarbeiter. Dann folgt ein Punkt (.) und der Name der öffentlichen Methode; hier getNachname(). Falls in der Signatur vorgesehen, müssen Eingabeparameter mit passenden Datentypen in der richtigen Reihenfolge an die aufgerufene Methode übergeben werden!
// Methodenaufruf ohne Eingabeparameter
einMitarbeiter.getNachname();
// Methodenaufruf mit Eingabeparameter
einMitarbeiter.setNachname("Müller");