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

Ein Java Fenster erzeugen mit dem JFrame

Java-Fenster-erzeugen

Ein Java Fenster erzeugen mit Swing. Java Swing – was ist das? Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an. Diese Klasse nennt sich Swing. Aus dieser Swing-Klasse heraus können Objekte erstellt werden. Diese Objekte lassen sich in vier verschiedene Kategorien einteilen. Fenster und Dialoge bilden das Grundgerüst einer grafischen […]

Nutze die Fernbedienung für deine Java Objekte

Auf Java Objekte greifst du mit einer Art Fernsteuerung zu. Diese bezeichnet man als Referenz oder als Verweis. Und diese Referenzvariablen möchte ich dir jetzt einmal vorstellen. Doch bevor wir loslegen, lass mich noch ein paar Dinge loswerden. 🙂 Ich habe es ja schon einmal in einem früheren Beitrag erwähnt. Java unterscheidet zwischen primitiven und […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

Java Methoden mit variabler Argumentenanzahl – VarArgs

Java Methoden mit variabler Argumentenanzahl VarArgs

Du kennst das noch. Kopfrechnen und zwar auf Zeit. So etwas ist das Standardprogramm in den Schulklassen 1 bis 5. Irgendwann, in Klasse 6 oder 7, kommt der Taschenrechner ins Spiel und Kopfrechnen ist aus dem Schulalltag gestrichen. Schade eigentlich. Dabei kann man diese Disziplin auch wunderbar in kleinen Spielen unterbringen. Ich erinnere mich noch: […]

Heap & Stack – Die Speicherverwaltung in Java

Java Speicher

Java nutzt eine interne Speicherverwaltung. Eigentlich sind es mehrere. Uns interessieren lediglich zwei. Da das Thema Speicherverwaltung recht umfangreich ist, habe ich dir im Folgenden einmal die wichtigsten Artikel zusammengestellt. Die zwei Speichersysteme von Java Java Methoden werden auf dem Stack gestapelt. Der Speicher auf dem Java Methoden zu Hause sind, nennt sich Stack Speicher. […]

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

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

Die vier wichtigen Phasen um Java Objekte zu erstellen

Java Objekte anlegen

Wie werden aus deinen Java Klassen richtig nützliche Java Objekte? Das ganze läuft in vier Phasen ab. Und diese Phasen möchte ich dir in diesem Beitrag vorstellen. Ob das nützlich ist? Schau dir das Bild an. Am Ende dieses Beitrages wirst du wissen, warum Eclipse dir hier eine Fehlermeldung gibt und wie du dieses Problem […]