Skip to main content

Java Übung & Lösung: Java Objekte in Java Methoden übergeben


java-übung-lösung-objekte-in-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

Unterschied zwischen Klassenvariable und Instanzvariable im Java Programm

unterschied klassenvariable instanzvariable java programmierung

Bei der Java Programmierung unterscheidet man drei Arten von Variablen. Als erste Gruppe sind die lokalen Variablen zu nennen. Auf diese gehe ich in einem separaten Artikel ein. Mich interessieren die zwei anderen Variablentypen. Zum einen existieren Klassenvariablen. Und dann sind da noch die Instanzvariablen. Wo liegt der Unterschied zwischen […]

Java Anfänger Übung: 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“ […]

Java Übung & Lösung: Fakultät berechnen und ausgeben

java übung lösung fakultät berechnen ausgeben

In dieser Java Übung geht es um die Fakultät aufeinander folgender Zahlen. Für alle, bei denen der Mathe-Unterricht genauso lange her ist, wie bei mir: Die Fakultät ist das Produkt aufeinander folgender natürlicher Zahlen. Zum Beispiel: Die Fakultät von 2 ist: 1*2=2 Die Fakultät von 5 ist: 1*2*3*4*5=120 So – […]

So kannst du Instanzen in Java Klassen zählen

java programmierung 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.

Java Übung & Lösung: Erstelle ein Mathematik- und Rechenprogramm

java übung lösung rechenprogramm

In dieser Java Übung möchte ich mit dir ein Programm erstellen, welches ein Mathematik-Test oder eine Mathe-Olympiade simuliert. Du kennst das vielleicht noch aus der Schule. Matheolympiade- Da wurden aus allen vier Grundrechenarten, Aufgaben formuliert. Die Schüler mussten diese Aufgaben lösen. Die Lehrer kontrollierten die Lösungen. Und der Schüler, welcher […]

Java Übung & Lösung: Gerade oder ungerade Zahlen?

java programmierung übung lösung gerade ungerade zahlen

In dieser Java Übung geht es um Zahlen. Um genau zu sein…. Es geht um gerade und ungerade Zahlen. Zur Erinnerung. Gerade Zahlen sind Zahlen, welche durch zwei teilbar sind. Ungerade Zahlen sind alle Zahlen, welche nicht glatt durch zwei teilbar sind. Ich möchte, dass du eine Klasse „GeradeZahlen“ anlegst. […]

Java Übung & Lösung: Würfelspiel mit Wertspeicherung im Array

java übung lösung spiel array werte speichern

In dieser Java Übung soll ein Würfelspiel simuliert werden. Lege eine Klasse namens, Würfelspiel an. Diese Klasse enthält eine statische Methode, namens würfeln(). Diese Methode erwartet einen Parameter vom Datentyp Integer, namens „anzahlWuerfe“. Diese Variable/Parameter repräsentiert die Anzahl der Würfe. Nachdem der Methode die Anzahl der Würfe übergeben wurde, soll […]

Java Übung & Lösung: Kommazahlen auf x-Nachkommastellen runden

java-programmierung-kommazahlen-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 – […]

So nutzt du Methoden aus der Java String Klasse

java programmierung methoden java string klasse

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

Java Übung & Lösung: Bestimme die Anzahl der Tage

java übung lösung tage berechnen

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

Java Übung & Lösung: Bestimme den größten gemeinsamen Teiler

java übung lösung größten gemeinsamen teiler bestimmen

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

Die sechs Bestandteile aller Java Methoden: Aufbau und Hintergründe

java programmierung methoden aufbau bestandteile

Java Methoden hauchen deinem Java Programm Leben ein. Ohne eine Methode würde deine Java Klasse ein starres Konstrukt sein. Deine Objekte hätten Eigenschaften. Aber sie könnten nichts machen. Und das wäre eine trostlose Welt. Java Methoden sorgen also dafür, dass Objekte interagieren. Methoden bestehen aus bestimmten Bausteinen. Und diese Bausteine […]

Java Übung & Lösung: Das erste kleine Java Spiel

java übung lösung javaspiel

In dieser Java Übung geht es darum ein kleines Java-Spiel zu erstellen. Und zwar Zahlen raten. Was kannst du dir darunter vorstellen? Du gibst einen bestimmten Wertebereich an. Zum Beispiel 0 bis 100. Und das Java Programm erstellt eine Zufallszahl in diesem Bereich. Dann fordert dich das Programm auf, die […]