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

So organisierst und verwaltest du ganz bequem deine Java Projekte

Du kennst das auch. Denn du bist ja fleißig. Und weil du so fleißig bist, hast du mitunter auch mehrere Java Projekte gleichzeitig laufen. Und dann kommt es vor, dass du enorm viele Java Projekte am Laufen hast. Und dein Package-Explorer wird extrem unübersichtlich. In diesem Beitrag möchte ich dir zwei Varianten vorstellen, wie du […]

Java Vererbung – Die Hierarchien richtig planen

Java Vererbung Hierarchien

Java Vererbung hat nichts mit Biologie zu tun. Die Genetik besagt, dass bestimmte Merkmalsausprägungen von den Eltern auf die Kinder übergehen. Solche Merkmalsausprägungen sind: die Hautfarbe die Haarfarbe die spezifische Größe und weitere körperliche Merkmale. Und in Java – was ist da Vererbung? Lass es uns herausfinden. Was erwartet dich in diesem Beitrag? Zuerst schauen […]

8 Java Datentypen, die du kennen solltest

Java Datentypen

Java Datentypen Ich gebe zu, ich hasse dieses Thema. Denn es ist eigentlich nichts weiter als graue Theorie. Dennoch müssen wir dieses Thema behandeln. Um schnell in das Thema zu kommen, stelle ich dir eine Übersicht aller primitiven Datentypen zur Verfügung. Wieso primitive? Es gibt außer den primitiven Datentypen, noch Referenztypen. Und diese Referenztypen sind […]

So nutzt du die While Schleife in deinem Java Programm

Java While Schleife

Manchmal ist es wichtig, Dinge einmal öfter zu tun. Bei der Java Programmierung kann es schonmal sein, dass du einen Code mehrfach ausführen lassen musst. Zum Beispiel die Zahlen eins bis zehn. Ein Java Programm, welches die Zahlen eins bis zehn wiedergibt. Na wie wäre das? Der Java Code dazu würde so aussehen: public class […]

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 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 […]

Java Vererbung findet auch zwischen Einkaufstüten und Polizeiautos statt

Java Vererbung

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“ Irrer Titel, oder? Aber mal Hand aufs Herz. Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam? Ich verrate dir etwas: Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten. Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden. […]