Skip to main content

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

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 = x;
	}

	public static void main(String[] args) {
		Umwandlung umwandler = new Umwandlung(); // neues Objekt wird erzeugt
		umwandler.setX(22); // Zuweisung der Instanzvariablen
		System.out.println(umwandler.getX()); // Rückgabe des Wertes
	}
}

Die Java Klasse verfügt über eine Instanzvariable mit den originellen Namen x. 🙂

Den Wert der Variablen kannst du über eine setter-Methode festlegen.
Über die getter-Methode kann der Wert erfragt und zurückgegeben werden.

Zu Testzwecken wurde in der main-Methode ein Objekt erzeugt.
Und der Wert der Instanzvariablen wurde für dieses Objekt auf 22 festgelegt.

Die Bildschirmausgabe ruft den getter auf und gibt somit den Wert zurück.

Soweit alles klar.

Jetzt kommt etwas, was du so eigentlich nie machst und sonst auch nicht machen solltest.
Es dient lediglich dazu, dass du den Umgang mit den Java Methoden übst.

Lange Rede- kurzer Sinn… 🙂
Schreibe den getter und setter um.
Und zwar – biete die getter- und die setter Methode als statische Methode an.


Die Lösung dieser Java Übung liegt im Überladen der Methoden.

Du musst beide Methoden überladen.

Beim Überladen von Java Methoden ist es wichtig, dass sich die Parameterlisten der Methoden unterscheiden.
Der Setter verlangt immer einen Parameter.
Dieser entspricht immer dem Datentyp der Instanzvariable.
Im Methodenrumpf erfolgt die Zuweisung durch die this referenz.


public class Umwandlung {
	private int x; //Instanzvariable vom Datentyp Integer

	public void setX(int x) { // setter Methode erwartet einen Parameter vom Datentyp der Instanzvariablen
		this.x = x; //Zuweisung über die this-Referenz
	}
}

Wenn du die setter-Methode als statische bzw. Klassenmethode anbietest, musst du die Parameterliste erweitern.
Und zwar musst du dann als Parameter eine Referenzvariable vom Datentyp der Java Klasse anbieten.

Im Methodenrumpf erfolgt dann die Zuweisung nicht über die this-Referenz.
Sondern du greifst auf die übergebene Referenzvariable zu.

Und so sieht der Java Code dazu aus.


public class Umwandlung {
	private int x; //Instanzvariable vom Datentyp Integer
	
	static public void setX(Umwandlung u, int x) { // Referenzvariable wird übergeben
		u.x = x; //Zugriff auf die Instanzvariable der Referenzvariablen
	}
}

Analog zum setter kannst du auch die getter-Methode wandeln

Der getter erwartet im nichtstatischen Kontext keinen Parameter.

Als statische Methode musst du ebenfalls ein Objekt bzw. eine Referenzvariable übergeben.

Der Java Code zum getter würde dann so aussehen:


public class Umwandlung {
	private int x; //Instanzvariable vom Datentyp Integer
	
	static public int getX(Umwandlung u) { // statische getter Methode mit Referenz
		return u.x; //Rückgabe des Wertes der Referenz
	}
}

Und jetzt kannst du in der main-Methode ein Objekt erzeugen.
Und dann rufst du die statischen Java Methoden auf.

Achte darauf, dass du in der Parameterliste die Referenzvariable übergibst.

Und der komplette Code mit allen Klassen- und Instanzmethoden:


public class Umwandlung {
	private int x; //Insstanzvariable vom Datentyp Integer

	public int getX() { // getter Methode
		return x;
	}
	
	static public int getX(Umwandlung u) { // statische getter Methode mit Referenz
		return u.x; //Rückgabe des Wertes der Referenz
	}


	public void setX(int x) { // setter Methode erwartet einen Parameter vom Datentyp der Instanzvariablen
		this.x = x; //Zuweisung
	}
	
	static public void setX(Umwandlung u, int x) { // Referenzvariable wird übergeben
		u.x = x; //Zugriff auf die Instanzvariable der Referenzvariablen
	}

	public static void main(String[] args) {
		Umwandlung umwandler = new Umwandlung(); // neues Objekt wird erzeugt
		setX(umwandler,22); // Methodenaufruf mit zwei Argumenten
		System.out.println(umwandler.getX(umwandler)); // Rückgabe des Wertes
	}
}

Zusammenfassung:

  • Du kannst statischen, aber auch Instanzmethoden Objekte übergeben.
  • Wenn du im Methodenrumpf einer Klassenmethode auf eine Instanzvariable zugreifen möchtest, musst du auf die übergebene Referenz per Punktnotation zugreifen.
  • Die getter und setter werden im Normalfall nur als Instanzmethoden angeboten.
    Diese nichttypische Umwandlung ist lediglich als Beispiel für diese Java Übung gedacht gewesen.

Ähnliche Beiträge

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

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

Der Aufbau von Java Klassen

Java Klassen Aufbau

Jedes Java Programm besteht aus Java Klassen. Doch wie sind diese aufgebaut? Wie setzt sich die Struktur zusammen? Wo befinden sich Klassen hierarchisch? Was kommt in die Klassen rein und wie wird es integriert? Das sind die Fragen, welche ich in diesem Artikel beantworten werde. Doch bevor wir bei den Klassen ansetzen, müssen wir eine […]

Java Übung 17: Char-Zeichen mit For-Schleife

Java Übung Char Zeichen For Schleife

In dieser Java Übung werden wir uns die Zeichen des Character Datentypen näher anschauen. Die einzelnen Zeichen sollen auf der Konsole ausgegeben werden. Und wie? Das ganze sollst du mit einer For Schleife machen. Erstelle deshalb eine Klasse „CharZeichen“. In dieser Klasse implementierst du dann eine Klassenmethode, namens „gibZeichen“. Und im Methodenrumpf durchläuft eine For-Schleife […]

Hier sind ein paar richtig nette Features, die dich beim Java lernen unterstützen

Java lernen Eclipse

Was ist das Wichtigste beim Einstieg in ein neues Wissensgebiet? Nein, kein gutes Sachbuch oder ein besonders guter Lehrer. Es ist Spaß. Beim Java Lernen brauchst du Spaß. Es gibt Lehrer, welche ihren Stoff so vermitteln, dass Lernen Spaß bereitet. Aber die Grundvoraussetzung ist und bleibt der Spaß. Und nichts ist so spaßhemmend wie Langeweile […]

Java Duales Zahlensystem – Binäre Zahlen in Java umwandeln

Java Dual System

Das duale Zahlensystem hat viele Bezeichnungen. Oft wird auch es Dualsystem oder Binärsystem genannt. Es besteht aber immer aus 2 Zahlen. Man verwendet oft die Zahlen 0 und 1. Es können aber auch sämtliche anderen Zahlenpaare sein. Zum Beispiel 7 und 175 sind für sich genommen, auch ein normales Zahlenpaar und somit ein Dualsystem. Mit […]

Java Binärzahl in Dezimalzahl umwandeln – So geht’s.

Java-Binärzahl-umrechnen

Erinnerst du dich? In einer der letzten Beiträge haben wir uns die Zusammenhänge zwischen dem dualen und dem dezimalen Zahlensystem angeschaut. Aber wir haben noch keine Java Binärzahl in eine Dezimalzahl verwandelt. Zumindestens nicht praktisch…. Stattdessen…. Haben wir festgestellt, dass beide Zahlensysteme im Grunde genommen sehr ähnlich sind. Beim Dezimalsystem spielt die Zahl 10, als […]

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

Nutze die richtigen Methoden zum Java Lernen

Java lernen Methoden

Ich lernte die Java Programmierung auf die klassische Art. Ich kaufte mir das erste Buch und los ging es. „Jetzt wirst du Java lernen“ – sagte ich zu mir. Ich war relativ schnell ziemlich frustriert, denn irgendwie fehlten mir ein paar Zusammenhänge. Kennst du das? Du hast ein Wissensfetzen und noch einen. Aber das Wichtigste. […]