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

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.

Die vier verschiedenen Zahlensysteme in der Java Programmierung

Java Zahlensysteme

Java Zahlensysteme – Was soll das? In sämtlichen Programmiersprachen werden Zahlen in Variablen abgespeichert. Wenn du dir die einzelnen primitiven Datentypen in Java einmal anschaust – wirst du feststellen – dass die Masse der Datentypen Zahlen annehmen und speichern können. Zahlen und die Mathematik dahinter spielen in der Programmierung eine sehr große Rolle. Ganz am […]

So kannst du mit dem StringTokenizer Java Strings zerlegen oder splitten

Java StringTokenizer Java Strings teilen zerlegen splitten

Java StringTokenizer – was ist das? Bevor ich diese Frage kläre, schiebe ich eine zweite Frage hinterher. Denn im Wort Tokenizer steckt das Wort Token. Also was ist ein Token? Hier die Definition zum Token: Ein Token ist eine bestimmte Aneinanderreihung von Zeichen. Man kann auch sagen, eine lexikalische Einheit. Das kann zum Beispiel eine […]

Nutze das Keyword this für deine Java Konstruktoren

Java konstruktoren this

Es ist gemein. Wahrscheinlich hast den Beitrag zu den lokalen Variablen gelesen. Vielleicht hast du auch den Artikeln zum Anlegen und Überladen von Java Konstruktoren gelesen. Und wenn du die beschriebene Inhalte selbst ausprobiert hast…… Dann hast du dir wahrscheinlich sehr viele lokale Variablennamen für die Parameterliste ausdenken müssen.

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

So kannst du Java Arrays mit for Schleife füllen und auslesen

Java Arrays For Schleife

Wir haben in einem anderen Beitrag bereits über Java Arrays gesprochen. So ein Array speichert Zahlen, Texte oder Objekte in eine Art Liste. Und dann kannst du ganz bequem über den Index das Array füllen und die bereits enthaltenen Werte abrufen. Ganz bequem? So, wie ich dich aus dem letzten Beitrag entlassen habe, war das […]

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

Von Java Klassen zum Java Programm – Der Programmstart

Java Klassen ausführen

In den letzten Beiträgen hast du gelernt, wie Java Klassen erstellt werden und aufgebaut sind. In diesem Beitrag geht es um den Programmstart. Ich will dir zeigen, was nötig ist, dass du ein Java Programm ausführen kannst. Und ich zeige dir außerdem, wie du eine Startklasse in einem x-beliebigen Javaprogramm anlegst. Wie auch schon zuvor, […]