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

So erstellst du deine ersten Java Klassen mit Eclipse

Java Klassen sind Baupläne für Java Objekte. Und da Java eine objektorientierte Programmiersprache ist, sind Java Klassen somit ein elementarer Bestandteil. In diesem Beitrag möchte ich dir zeigen, wie du eine Java Klasse in Eclipse erstellen kannst. Ich möchte dir außerdem zeigen, was physikalisch in deinem Projekt passiert. Ganz zum Schluss zeige ich dir noch, […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

So kannst du Instanzen in Java Klassen zählen

Wie kannst du die Instanzen der Java Klassen zählen? Ganz einfach. Am besten ist es, wir bleiben beim Einführungsbeispiel zu den Java Klassen. Und ich wähle die Klasse „Monster“. Um es einfach zu halten, soll auch der Programmstart durch die Klasse erfolgen. Die Klasse bietet somit eine main-Methode an.

So kannst du in den Java Klassen Attribute anlegen

Java Klassen Attribute

Die bisherigen Java Klassen in unserem Einführungsbeispiel besitzen noch keine Attribute. Das ändern wir und legen diese jetzt an. In diesem Beitrag erfährst du: Warum Variablen in deinen Klassen eine entscheidende Rolle spielen. Was es bedeutet eine Variable zu deklarieren. Wo du Attribute in den Java Klassen anlegen darfst und wo nicht. Wie du durch […]

Java Übung 27 – Auf zur Mathe-Olympiade

Java Übung Mathe Olympiade

In dieser Java Übung möchte ich mit dir ein Programm erstellen, welches ein Mathematik-Test oder eine Mathe-Olympiade simuliert. Du kennst das vielleicht noch aus der Schule. Matheolympiade- Da wurden aus allen vier Grundrechenarten, Aufgaben formuliert. Die Schüler mussten diese Aufgaben lösen. Die Lehrer kontrollierten die Lösungen. Und der Schüler, welcher die wenigsten Fehler hatte – […]

So nutzt du getter und setter Methoden bei der Java Programmierung

Java Keyword private

In diesem Artikel möchte ich dir zeigen, wie du Instanzvariablen innerhalb der Java Klasse schützt. Und den Zugriff nur noch indirekt über getter und setter Methoden anbietest. Stell dir vor. Du hast ein Programm zur Lagerverwaltung geschrieben. Dieses Programm dient Möbelhäusern dazu, ihre Bestände zu verwalten. Und das Programm erwartet vom Nutzer gewisse Eingaben zu […]

So implementierst du Instanzmethoden in deine Java Klasse

Java Instanzmethoden

In einen der letzten Beiträge habe ich dir gezeigt, wie du eine Klasse anlegen kannst. Ich habe die Klasse „Mensch“ oder „Human“ angelegt und wir haben die erste Instanzvariable implementiert. Dein Code sollte jetzt so aussehen: public class Human { int size=156;//size in centimeter } In diesem Beitrag werde ich dir zeigen, wie du Java […]

So kannst du ein Java Programm starten und Argumente übergeben

Um ein Java Programm starten zu können, benötigst du immer die main-Methode. Das Programm startet immer genau an dieser Stelle. Alle lokalen Variablen, welche du in der Main Methode anlegst, kannst du dann im Programm nutzen. Auch alle Methoden, welche du innerhalb des Methodenrumpfes der main-Methode aufrust, werden ausgeführt. Was ist aber vor der main-Methode. […]

3 Möglichkeiten um Vererbung von Java Klassen zu verhindern, zu verbieten oder ausschließen

Java Vererbung verhindern

Die ganze Java Vererbung für bestimmte Klassen ausschließen bzw. verhindern oder verbieten. Was soll das? Für bestimmte Java Klassen soll die Vererbung ausgeschlossen werden. Es soll also verhindert werden, dass Elternklassen – Kindklassen bekommen können. Klingt ein bisschen wie Verhütung, oder? Denn wie auch im echten Leben, können Kinder zu kleinen Tyrannen werden. Sie bedienen […]

Ein Java Fenster erzeugen mit dem JFrame

Java-Fenster-erzeugen

Ein Java Fenster erzeugen mit Swing. Java Swing – was ist das? Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an. Diese Klasse nennt sich Swing. Aus dieser Swing-Klasse heraus können Objekte erstellt werden. Diese Objekte lassen sich in vier verschiedene Kategorien einteilen. Fenster und Dialoge bilden das Grundgerüst einer grafischen […]