Skip to main content

Die vier wichtigen Phasen um Java Objekte zu erstellen

Wie werden aus deinen Java Klassen richtig nützliche Java Objekte?

Das ganze läuft in vier Phasen ab.
Und diese Phasen möchte ich dir in diesem Beitrag vorstellen.

Ob das nützlich ist?
Schau dir das Bild an.

Java Objekt Fehlermeldung

Am Ende dieses Beitrages wirst du wissen, warum Eclipse dir hier eine Fehlermeldung gibt und wie du dieses Problem lösen kannst.

Na Interesse?
Na dann sind hier die vier Phasen der Java Objekt Erstellung.

Phase 1: Alle Java Objekte werden durch die Anweisung new erstellt.

Schau dir diese Klasse einmal an.

public class ObjektErstellung {
private int zaehler; //Instanzvariable
 
public ObjektErstellung() { //Konstruktor
}
 
public static void main(String[] args) {
ObjektErstellung erstesObjekt = new ObjektErstellung(); //Anweisung um zum Java Objekt erstellen
}
}

Um ein Java Programm zu starten, benötigst du die main-Methode.
Und somit beginnt die Reise immer dort.

In der main-Methode befindet sich die Anweisung, um ein neues Java Objekt zu erstellen.
Dabei wird zuerst der Datentyp festgelegt.
Dieser entspricht dem Klassennamen.

Java Objekt Datentyp

Danach folgt der Name des Objektes bzw. der Instanz.
In diesem Fall „erstesObjekt“.
Unter diesem Namen wird die Referenz im Hauptspeicher verwaltet.

Dann erfolgt die Zuweisung in Form des Gleichheitszeichens.

Java-Objekt-erstellen-Zuweisung

Dann folgt das Keyword new.
Java-Objekt-erstellen-new

Dies ist die Anweisung, dass ein neues Objekt angelegt werden soll.
Java-Objekt-erstellen-Konstruktoraufruf

Hinter dem new Keyord befindet sich der Aufruf des Konstruktor.
Du kannst in jeder Klasse mehrere verschiedene Konstruktoren anlegen.
Hier legst du fest, mit welchem Konstruktor das Objekt erschaffen werden soll.

In dieser Klasse haben wir lediglich einen parameterlosen Konstruktor.
Und diesen rufst du auf und erschaffst dein Java Objekt.

Das war es schon mit Phase eins.

In Phase zwei wird die Instanzvariable deklariert

Alle wichtigen Dinge werden verpackt und gespeichert.

In der Java Klasse siehst du die Instanzvariable „zaehler“.
Jetzt wird diese Instanzvariable deklariert.

Java-Objekt-erstellen-Variable-deklarieren

Es wird somit ein konkreter Speicherplatz für diese Variable reserviert.
In diesem Fall wird ein Speicherplatz in Höhe eines Integer-Datentypen angelegt und für die Variable „zaehler“ reserviert.

In Phase drei wird der Instanzvariablen ein Wert zugewiesen

Und deshalb kommt es auch zur eingangs erwähnten Fehlermeldung.

Java Objekt Fehlermeldung

Auf diesem Bild siehst du, dass eine Instanzvariable angelegt wurde.
Und der Compiler liest den Code von oben nach unten.
Hat der Compiler den kompletten Code in Phase 2 durchgearbeitet werden alle Instanzvariablen angelegt.

Und jetzt steckt der Compiler in Phase zwei (Variablendeklaration) und es soll einer Variablen, welche noch nicht existiert einen Wert zuweisen.
Das geht natürlich nicht.

Also solltest du den Wert bei der Deklaration zuweisen.

public class ObjektErstellung {
private int zaehler=2; //Deklaration und Zuweisung
 
public ObjektErstellung() { //Konstruktor
}
 
public static void main(String[] args) {
ObjektErstellung erstesObjekt = new ObjektErstellung(); //Anweisung um zum Java Objekt erstellen
}
}

Aber auch dann werden in Phase 2, die Variablen angelegt.
Und erst in Phase drei, wenn alle Variablen deklariert wurden, wird dieser ein Wert zugewiesen.

Phase drei kannst du auch mit separaten Codeblöcken vollziehen.

Ein Codeblock beginnt mit einer öffnenden Klammer und endet mit einer schließenden Klammer.

public class ObjektErstellung {
private int zaehler; //Phase 2 - Deklaration der Instanzvariablen
{
System.out.println("Instanzvariable angelegt. Wert = "+zaehler);//Phase 3 - Zuweisung der Instanzvariablen
}
 
public ObjektErstellung() { //Konstruktor
}
 
public static void main(String[] args) {
ObjektErstellung erstesObjekt = new ObjektErstellung(); //Phase 1 - Erstellung des Objektes 
}
}

Und innerhalb dieses Blockes kannst du der Instanzvariablen einen Wert zuweisen.
Um das Ganze zu testen, befindet sich im Codeblock die Anweisung für die Konsolenausgabe.

Da in diesem Beispiel der Instanzvariablen noch kein Wert zugewiesen wurde, bekommt diese in Phase 3 einen default-Wert.

Jeder primitive Datentyp hat seinen eigenen default-Wert.
In diesem Fall bekommt die Integer Variable den Wert 0.

In Phase 4 werden die Anweisungen im Konstruktorrumpf ausgeführt.

Das Java Objekt wurde jetzt komplett angelegt.

Jetzt im Konstruktorrumpf kann der Instanzvariablen ein neuer Wert zugewiesen werden.

Um die ganzen vier Ablaufphasen besser zu demonstrieren, schau dir diesen Code einmal.

public class ObjektErstellung {
	private int zaehler;	

	public ObjektErstellung() { //Konstruktor
		zaehler=2;
		System.out.println("Phase 4. Konstruktorrumpf wird ausgeführt");
		System.out.println("Die Instanzvariable hat jetzt den Wert " +zaehler);
	}
	
	public static void main(String[] args) {
		System.out.println("Phase 1: Konstruktor wird aufgerufen");
		ObjektErstellung erstesObjekt = new ObjektErstellung();
	}
	{
		System.out.println("Phase 2: Instanzvariable angelegt.");
		System.out.println("Phase 3: Instanzvariable wurde der default-Wert "+zaehler+" zugewiesen.");
	}
}

Ganz bewusst sind die Codeblöcke (Phase 2 und 3) unter dem Konstruktor.

Wenn du diesen Code einmal ausführst, dein Programm also startest, wirst du bemerken:

  • Der Compiler führt den Code nicht strikt von oben nach unten aus.
  • Stattdessen erfolgt die Ausführung der einzelnen Programmanweisungen nach den vier beschriebenen Phasen.

Zusammenfassung:

  • Die Objekt-Erstellung durchläuft vier Phasen.
  • In der ersten Phase werden die Java Objekte angelegt. Dazu wird ein Speicherplatz für dieses Objekt reserviert.
  • In Phase 2 wird ein Speicherplatz für die Instanzvariablen reserviert.
  • In Phase 3 werden den Instanzvariablen die Werte zugewiesen.
  • Erst in Phase 4 wird der Code im Konstruktorrumpf ausgeführt.

Ähnliche Beiträge

Java Exceptions Handling – Fehler- und Ausnahmenbehandlung in Java

Java Exceptions Handling

Java Exceptions Handling umfasst den richtigen Umgang mit Ausnahmen und Fehlern. Wie geht das? Und braucht man so etwas wirklich? Vielleicht sagst du jetzt: „Brauch ich nicht. Ich mache niemals Fehler.“ Doch… Bei der Java Fehlerbehandlung geht es nicht ausschließlich nur um deine Programmierfehler. Es geht auch um falsche Nutzereingaben, Hardware- und Ablauffehler. Und deshalb […]

So kannst du Java installieren

Java installieren

Bevor du loslegst und deine ersten Java Programme schreibst, benötigst du die entsprechende Arbeitsumgebung. Du solltest also Java installieren. Und diese Arbeitsumgebung beinhaltet dann Bibliotheken für die einzelnen Java-Standard-Klassen, Dateien um deine Programme auszuführen. Dateien um deine Programme zu packen, Logische Verzeichnisstrukturen

So einfach lassen sich Java Strings umkehren

Java Strings umkehren

Kennst du noch das Lied „ANNA“ von Freundeskreis? Da hieß es: Du bist von hinten, wie von vorne A-N-N-A. Solche Namen oder Wörter, welche von hinten nach vorne gelesen – die gleiche Bedeutung haben, nennt man Palindrome. Anna, Ehe oder Ebbe sind recht kurze Palindrome. Aber auch längere zusammengesetzte Palindrome kennt die deutsche Sprache: Regallager […]

Beim Aufruf werden Java Methoden auf dem Stack gestapelt

Java Methoden gestapelt

Java Methoden werden beim Aufruf gestapelt. Und jedes Element auf dem Stapel nimmt Speicherplatz weg. Und manchmal ist es so, dass der Stapel richtig hoch wird und dann…. Ja was passiert eigentlich dann? Betrachten wir einmal ein Computerspiel. Irgendeines. In diesem Computerspiel gibt es Vögel, welche abgeschossen werden sollen. Was bedeutet das denn genau? Beim […]

So nutzt du das Java Keyword public

Java Keyword public

Java Programme bestehen aus Java Klassen. Und der Zugriff auf eine Java Klasse sollte nach außen immer gewährleistet sein. Was bedeutet das? Du solltest in jeder Klasse die Möglichkeit haben, ein Objekt einer anderen Klasse anzulegen. Gerade durch diese Möglichkeit macht doch das ganze Klassenkonstrukt erst Sinn.

Java Exklusives Oder – So nutzt du den Xor Operator

Java exklusives oder

In diesem Beitrag möchte ich dir den Xor Operator von Java vorstellen. Dieser Operator wird auch als ausschließendes oder exklusives Oder bezeichnet. Ein Beispiel: Was wilst du heute zum Mittag essen: Fleisch oder Fisch? Auf diese Frage gibt es nur eine Antwort. Es ist entweder Fisch oder Fleisch. Niemals beides. Das Eine schließt das andere […]

Java Übung 16 – Bestimme den größten gemeinsamen Teiler

Java Übung Teiler

In dieser Java Übung möchte ich, dass du den größten gemeinsamen Teiler zwei Zahlen ermittelst. Ich möchte, dass du das Ganze mit einer while-Schleife umsetzt. Und wie? Du legst eine neue Klasse „GGT“ (größter gemeinsamer Teiler) an. In diese Klasse implementierst du eine Klassenmethode „berechneGGT“. Diese erwartet zwei Argumente vom Datentyp Integer.

So verwendest du die Java Codeblöcke zur Automatisierung

Java Codeblöcke

In diesem Beitrag geht es um den Einsatz von Java Codeblöcken oder Initialisierungsblöcken. Viele Wege führen nach Rom. Oder Alle Wege führen nach Rom. Heißt es in einem alten Sprichwort. Und so ähnlich ist es bei der Java Programmierung. In diesem Beitrag möchte ich dir einen weiteren Weg vorstellen, wie du Variablen eines Java Objektes […]

Die sechs Bestandteile von Java Methoden

Java Methoden Bestandteile

Java Methoden hauchen deinem Java Programm Leben ein. Ohne eine Methode würde deine Java Klasse ein starres Konstrukt sein. Deine Objekte hätten Eigenschaften. Aber sie könnten nichts machen. Und das wäre eine trostlose Welt. Java Methoden sorgen also dafür, dass Objekte interagieren. Methoden bestehen aus bestimmten Bausteinen. Und diese Bausteine bestimmen, was die Methode darf […]