Skip to main content

So lassen sich die Felder der Java Klassen initialisieren

Lass uns die Attribute in den Java Klassen initialisieren.
Ich sagte es bereits, dass du Felder oder Variablen deklarieren und initialisieren kannst.

Deklarieren heißt Variable anlegen.
Und Initialisieren ist der der Variable einen Wert zuweisen.

Was bisher geschah:
In unserem Einführungsbeispiel wurden bisher:

  • Java Klassen erstellt
  • Eine Klasse für den Programmstart angelegt
  • Instanzvariablen deklariert
  • Und wir haben zwei Objekte erstellt.

Java Klassen Felder Klassen des Adventures

In diesem Beitrag werde ich dir zuerst zeigen, wie du den Objektvariablen Werte zuweist.
Außerdem möchte ich dir zeigen, wie du diese Werte nachträglich ändern kannst.

Auf die Objekte der Java Klassen greifst du per Punktnotation zu.

In der Start-Klasse befindet sich die main-Methode zum Programmstart.

Und innerhalb dieser main-Methode haben wir zwei Referenzvariablen angelegt.
Diese heißen: „heldEins“ und „heldZwei“.


public class Start {

	public static void main(String[] args) {
		Held heldEins = new Held();
		Held heldZwei = new Held();
	}
}

Beide Referenzvariablen verweisen auf jeweils ein Objekt.

Java Klassen Referenzvariablen

Wichtig ist die Tatsache, dass die Variablen „heldEins“ oder „heldZwei“ nicht die Objekte sind.
In diesen Variablen wurde lediglich die Speicheradresse der Objekte hinterlegt.

Und um jetzt das Objekt anzusprechen, musst du eine Punktnotation einleiten.

Was ist das?

  • Du gibst den Namen der Variablen an.
  • Setzt einen Punkt.
  • Und dann rufst du die Instanzvariable auf.

Java-Punktnotation

Durch die Punktnotation wird genau das Objekt angesprochen, auf welches die Referenzvariable verweist.
Und Objekte sind eine Zusammenfassung der Daten einer Klasse.
Somit beinhalten die Objekte alle Instanzvariablen der entsprechenden Java Klassen.
Und diese Zusammensetzung der Variablen existiert bei zwei Objekten zweimal.
Java Klassen 2 Objekte

Es hat somit jedes Objekt seine eigenen Instanzvariablen, abgeleitet aus der Java Klasse aus der es stammt.

Am besten am Beispiel.

So kannst du die Werte der Attribute in den Java Klassen ändern.

Am Beispiel der Heldklasse machst du es so:

  • Referenzvariable „heldEins“ oder „heldZwei“ eingeben.
  • Punkt setzen und somit das Objekt ansprechen.
  • Und dann das Element bzw. Feld eingeben, welches du ändern möchtest (das Alter).
  • Dem Element mit dem Zuweisungsoperator (=) einen Wert zuweisen.

public class Start {

	public static void main(String[] args) {
		Held heldEins = new Held();//Helden Objekt 1
		Held heldZwei = new Held();//Helden Objekt 2
		
		
		heldEins.heldAlter=24;//Zuweisung des Wertes 24
	}
}

Das war es schon.
Was heißt das jetzt?

  • Das Objekt, auf welches die Variable „heldEins“ verweist, hat drei Instanzvariablen.
  • Die Instanzvariable „heldAlter“ hat den Wert 24.
  • Die Instanzvariable „heldGroesse“ hat den Wert 0.
  • Und das Feld „heldName“ hat den Wert null.

Wieso das?
Ganz einfach.
Sobald ein Objekt erstellt wird, werden alle Instanzvariablen zum Objekt deklariert.
Und zum Programmstart werden alle Instanzvariablen initialisiert.

Die Instanzvariablen, welchen du einen Wert zugewiesen hast, erhalten diesen und alle anderen erhalten einen default-Wert.
Und dieser default-Wert richtet sich nach dem Datentypen, welchen du vereinbart hast.
Im Falle von String (heldName) ist dieser null, also nichts.
Im Falle von double (heldGroesse) ist dieser 0,0.

Du kannst es selbst testen.
Denn du kannst dir die Werte der Attribute an der Konsole ausgeben lassen.

So kannst du dir die Eigenschaftswerte der Java Klassen an der Konsole anzeigen lassen.

Eine Konsolenausgabe erzeugst du mit der Anweisung: System.out.println().

Und in die Klammern der Anweisung kannst du sämtlichen Code eingeben.
So natürlich auch den Objektaufruf mit Attribut.

  • Also Referenzvariable
  • Punkt
  • Attribut

public class Start {

	public static void main(String[] args) {
		Held heldEins = new Held();// Helden Objekt 1
		Held heldZwei = new Held();// Helden Objekt 2

		heldEins.heldAlter = 24;// Zuweisung des Wertes 24

		System.out.println(heldEins.heldName);// Rückgabe: null
		System.out.println(heldEins.heldAlter);// Rückgabe: 24
		System.out.println(heldEins.heldGroesse);// Rückgabe: 0,0

		// Und die Werte für das zweite Objekt
		System.out.println(heldZwei.heldName);// Rückgabe: null
		System.out.println(heldZwei.heldAlter);// Rückgabe: 0
		System.out.println(heldZwei.heldGroesse);// Rückgabe: 0,0
	}
}

Wenn du selbst diesen Code einmal ausführst, siehst du dass alle Felder in der Java Klasse initialisiert worden.
Du bekommst den Initialisierungswert zurück.
Du bekommst außerdem für Objekt 1 ein anderes Alter als für Objekt 2.

Jetzt lass uns etwas mit den Werten herumspielen. 🙂

Jetzt lass uns die Werte für zwei Helden anlegen.

Java Klassen 2 Objekte

Und hier der Code:


public class Start {

	public static void main(String[] args) {
		Held heldEins = new Held();// Helden Objekt 1
		Held heldZwei = new Held();// Helden Objekt 2
		
		//Zuweisung für erstes Held-Objekt
		heldEins.heldName = "Moritz";//Zuweisung Namen für erstes Objekt
		heldEins.heldAlter = 24;// Zuweisung des Wertes 24
		heldEins.heldGroesse= 1.82;//Zuweisung Größe
		
		//Belegung für Held 2
		heldZwei.heldName = "Paula";
		heldZwei.heldAlter = 32;
		heldZwei.heldGroesse= 1.73;
		
		//Konsolenausgaben zu Held 1
		System.out.println(heldEins.heldName);// Rückgabe: Moritz
		System.out.println(heldEins.heldAlter);// Rückgabe: 24
		System.out.println(heldEins.heldGroesse);// Rückgabe: 1,82

		// Und die Werte für das zweite Objekt
		System.out.println(heldZwei.heldName);// Rückgabe: Paula
		System.out.println(heldZwei.heldAlter);// Rückgabe: 32
		System.out.println(heldZwei.heldGroesse);// Rückgabe: 1,82
	}
}

Was gilt es bei den Zuweisungen zu beachten?

  • Der Name ist ein String-Datentyp.
    Und diese Zeichenketten übergibst du immer in Anführungszeichen.
  • Die Größe ist eine Gleitkommazahl.
    Das Komma kann Java nicht verarbeiten.
    Setze stattdessen einen Punkt.
  • Achte auf das Semikolon hinter jeder Anweisung.

So- es wurden alle Felder für beide Objekte initialisiert.
Da geht aber noch mehr.

Du kannst als Wert ein Ergebnis von mathematischen Berechnungen zuweisen.

So wie hier:


public class Start {

	public static void main(String[] args) {
		Held heldEins = new Held();// Helden Objekt 1
		Held heldZwei = new Held();// Helden Objekt 2
		
		heldEins.heldAlter = 24*2;// Zuweisung einer mathematischen Berechnung

		//Konsolenausgaben zu Held 1
		System.out.println(heldEins.heldAlter);// Rückgabe: 48
	}
}

Wie wäre es, wenn Held 2 immer doppelt so alt wäre, wie Held 1.
So geht’s.


public class Start {

	public static void main(String[] args) {
		Held heldEins = new Held();// Helden Objekt 1
		Held heldZwei = new Held();// Helden Objekt 2
		
		heldEins.heldAlter = 24*2;// Zuweisung einer mathematischen Berechnung
		
		heldZwei.heldAlter = heldEins.heldAlter*2;//Held 2 ist doppelt so alt
		
		//Konsolenausgaben zu Held 1 & 2
		System.out.println(heldEins.heldAlter);// Rückgabe: 48
		System.out.println(heldZwei.heldAlter);//Rückgabe 96
	}
}

Du kannst also nicht nur reine Werte zuweisen.
Es ist auch möglich das Ergebnis von mathematischen Gleichungen in den Felder zu speichern.

Ja – es ist sogar möglich, Methoden anzulegen.
Und diese Methoden verändern die Werte der Attribute.

Stell dir vor eine wachsen-Methode, welche die Größe des Helden ändert.

Und um diese Methoden geht’s im nächsten Beitrag.

Zusammenfassung:

  • Die Felder von Java Klassen werden initialisiert, sobald das Objekt angelegt wurde.
  • Dabei bekommen alle Attribute einen sogenannten default-Wert zugewiesen.
  • Du kannst den Wert der Variablen im Nachhinein abändern.
  • Dazu musst du an der Referenzvariablen die Punktnotation ausführen.
  • Durch die Punknotation oder dem Punktoperator sprichst du das Objekt direkt an.
    Du kannst dann jede vorgesehene Instanzvariable wählen und ihr einen individuellen Wert zuweisen.

Ähnliche Beiträge

Ohne Abstraktion ergibt Java Polymorphie wenig Sinn

Java Polymorphie Abstraktionsprinzip

Kennst du den Film Matrix? Denn kennst du vielleicht auch die Botschaft, welche der Protagonist am Anfang des Filmes erhält. „Folge dem weißen Kaninchen.“ Und so ähnlich ist es jetzt auch in diesem Beitrag. „Wir dringen immer tiefer in den Kaninchenbau ein.“ 🙂 Ganz so wie im Film wird es nicht. Aber bevor wir mit […]

Drei Möglichkeiten um Java Objekte zu zerstören

Java Objekte zerstören

Java Objekte leben genau solange, wie eine Referenzvariable auf sie zeigt. Wenn dieser Zeiger nicht mehr existiert, wird dieses Objekt aufgeben. Und wenn dieses Objekt erst einmal aufgegeben wurde, dann kommt der Garbage Collector und entsorgt dieses. Aber wie kannst du nun am Sinnvollsten Objekte aufgeben? Lass es uns herausfinden.

Java Übung 11 – Java Objekte in Java Methoden übergeben

Java Übung Java Methoden Objekte

In dieser Java Übung möchte ich dir zeigen, dass du auch in Klassenmethoden auf Objekte und deren Instanzvariablen zugreifen kannst. Schau dir dazu einmal diesen Java Code an. public class Umwandlung { private int x; public int getX() { // getter Methode return x; } public void setX(int x) { // setter Methode this.x = […]

Die mathematischen Grundlagen des Dezimalsystems für Java Programmierer

Java Dezimalsystem Mathematik Programmierer

Bei der Java Programmierung benötigst du Kenntnisse über das Dezimalsystem. Allein schon für die technische Umsetzung beim Runden einer Zahl. Oder du möchtest den Kehrwert bzw. den Umkehrwert einer Zahl im Programm bestimmen lassen. Aber auch für das Herausfinden des Stellenwertes – also wieviel Stellen hat eine Zahl – benötigst du das Grundwissen des Dezimalsystems. […]

So nutzt du Methoden aus der Java String Klasse

Java Strings Methoden

In einen der letzten Beiträge haben wir darüber gesprochen, dass Java Strings – Objekte sind. Dass Strings in allen Programmen äußerst häufig vorkommen Und dass sich deshalb Referenzvariablen String-Objekte im String Pool teilen. Das Konzept hinter dem String-Pool ist die Teilung der Ressourcen. Und das bedeutet: Weniger Objekte – mehr Speicher Mehr Speicher – bessere […]

So verwendest du in Java try und catch Blöcke

Java try und catch

Ich bereue lieber die Dinge, die ich getan habe – als die Dinge, welche ich gar nicht erst versucht habe. Ja ich würde mich als den typischen „try-and-error-Menschen“ bezeichnen. Was ich will, probiere ich einfach aus und schaue dann erst was passiert. So etwas wie Pläne kenne ich eigentlich nicht. Und wenn ich mal einen […]

Java Konsolenausgaben mit formatierten Zahlen

Java Konsolenausgaben Zahlen

Java Konsolenausgaben erzeugst du mit der System.out.println()-Anweisung. Dies ist relativ einfach. Aber es ist mitunter nicht ganz praktisch. Und zwar immer dann, wenn Zahlen im Spiel sind. Die Zahlen welche dann auf deiner Java Konsole erscheinen, sind unformatiert. Sie haben zu viele Kommastellen. Oder für eine bessere Darstellung benötigst du den Tausenderpunkt. Vielleicht möchtest du […]

Java Objekte leben auf dem Heap

Java-Objekte-Heap

Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere.   Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt.   Ja wieso braucht Java eigentlich zwei Speichersysteme?   Es ist ganz einfach. […]

Java Übung: Alles beginnt mit Hello World

Java Übung Hello World

Alles beginnt mit „Hello World“. Sämtliche Java Bücher beginnen mit diesem ersten Beispiel. Auch die Java Übungen sollen mit diesem ersten Programm starten. Definiere eine Klasse „Hello World“. Implementiere die Main Methode. Die Main Methode soll bei Programmaufruf die Bildschirmanzeige „Hallo Welt“ zurückgeben. Die Lösung zur Java Übung „Hallo Welt“ public class HelloWorld{ public static […]

So kannst du Java Methoden überladen

Java Methoden überladen

Im Mittelalter war es üblich, dass Könige oder Adlige Briefe durch ein Siegel verschlossen. Das Siegel hatte die Aufgabe den Inhalt des Briefes vor dem gewaltsamen Öffnen zu schützen. Außerdem hatte das Siegel die Aufgabe einen Eigentumsnachweis sicher zu stellen. Und jeder, welcher das Siegel des Königs sah, wusste: „Das königliche Siegel – Oh ein […]

Ende vom Java Blog?

Falls du hier schon länger dabei bist, wird dir aufgefallen sein – dass kaum noch Beiträge veröffentlicht werden. Das tut mir wirklich leid und dafür möchte ich mich auch entschuldigen. Ich weiß, dass Einige unter Euch den Java-Blog wirklich lieben. Aber es ist verdammt schwierig so ein aufwendiges Thema – stilvoll, unterhaltend und methodisch umzusetzen. […]