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 legst du Utility Klassen in Java an

Java Utility Klassen

Utility Java Klassen – was ist das? Man nennt diese auch Hilfsklassen von Java. Diese Utility Klassen sind Java Klassen, welche lediglich Methoden und Konstanten anbieten. Am Beispiel: Die Klasse Math ist so eine klassische Utility Klasse. Wozu braucht man solche Klassen? Diese Klassen sind so etwas wie ein Werkzeugkoffer für jedes Java Programm. Hier […]

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

Java Übung 24 – So kannst du Kommazahlen runden

Java Übung runden

In dieser Java Übung möchte ich mit dir Zahlen runden. Ich bitte dich deshalb: Erstelle eine Klasse „RundenUebung“. Lege dann eine statische Methode rundeZahl() an. Diese erwartet zwei Parameter. Parameter 1 ist die Kommazahl, welche gerundet werden soll. Als zweiten Parameter wird eine ganze Zahl übergeben, welche die Nachkommastelle – bis auf welche letztlich gerundet […]

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.

Java Strings landen im String Constant Pool

Java-Strings-Pool

Du kennst das. Es ist abends. Du sitzt gemütlich vor dem Fernseher. Das Smartphone bimmelt. Kein Anruf. Nein – Eine Nachricht. Du liest die Nachricht sofort und antwortest darauf. Minuten später bekommst du die nächste Nachricht. Und auch auf diese antwortest du. Im Laufe des Abends entsteht daraus eine nette kleine Konversation. Und eh du […]

So kannst du Eclipse installieren

Eclipse installieren

Das Schöne an Eclipse ist, es läuft auf sämtlichen Betriebssystemen. Eclipse wird einfach auf der Webseite des Herstellers herunter geladen und kann dann installiert werden. Dabei stehen dir verschiedene Versionen zur Verfügung.

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

Java Übung 21 – Bestimme die Anzahl der Tage

Java Übung Tage

In dieser Java Übung möchte ich, dass du eine Methode schreibst, welche zwei Zahlen entgegennimmt. Und zwar soll die erste Zahl das Jahr sein. Die zweite Zahl soll eine Monatsangabe (1-12) repräsentieren. Was soll die Methode dann machen? Die Methode soll dir die Anzahl der Tage des jeweiligen Monats zurückgeben. Achte auf Schaltjahre.