Referenz in Java

Wie übergibt man in Java z. B. eine Integer Variable als Referenz?

Angenommen ich hätte:

int meineVar = 2;

nun soll durch eine Methode der Inhalt von meineVar auf 4 geändert werden:

In C++ mach ich das so:

[DUKE]MeineMethode(int& meineVar);[/DUKE]

Aber in Java? Mein Java-Konverter kann das nicht. Er schreibt das gleiche hin wie in C++

https://varycode.com/converter.html
 

rme

Top Contributor
Hallo,

in Java gibt es keine Referenzen im C++-Sinne, alle Parameter werden by-Value übergeben. Wobei der Wert einer Objektvariablen die Speicher-Adresse darstellt, sodass bei der Übergabe einer Objektvariablen keine Kopie erzeugt wird, sondern die Methode tatsächlich die Möglichkeit hat, mit dem Objekt zu interagieren, sodass die Änderungen auch außerhalb der Methode sichtbar sind.

Gängige Lösungen sind:

  • Array der Größe 1 verwenden, das von der Methode gefüllt wird
  • kleine Klasse erstellen, die eine public-Variable hat: [c] class Wert {public int x;}[/c]. Davon kannst du eine Instanz erzeugen, der Methode mitgeben und diese kann dann den Wert setzen
  • das über den Rückgabewert lösen, z.B. ein Objekt zurückgeben, das mehrere Werte enthält
 
Zuletzt bearbeitet:
Danke für die schnelle Antowort. Aber ich komme einfach nicht weiter.
Bedeutet das, dass Java das nicht anbietet, man aber über Umwege das
erreichen kann? Hast du eventuell zu den 3 Möglichkeiten jeweils
ein Beispiel parat? Wäre toll!
 

wef34fewrg

Aktives Mitglied
Danke für die schnelle Antowort. Aber ich komme einfach nicht weiter.
Bedeutet das, dass Java das nicht anbietet, man aber über Umwege das
erreichen kann? Hast du eventuell zu den 3 Möglichkeiten jeweils
ein Beispiel parat? Wäre toll!

In Java gibt es sogenannte Wrapperklassen. Diese bilden Objekte aus primitiven Datentypen. Z.B.
Java:
public class WhatEver
{

     //primitive Variable
     int i = 2;
     //Objekt welches als Referenz übergeben werden kann
     Integer i2 = new Integer(i);

     public void addiere(int summand)
     {
          i2 = new Integer(i2.intValue() + summand);
     }
}

Zu beachten ist, dass der Wert innerhalb des Integer Objekts nicht veränderbar ist. Du musst also jedes Mal ein neues Objekt erstellen und es der Variable i2 zuweisen.

Vielleicht hilft dir das ja, auch wenn es lange nicht so geschickt ist wie in c++. ;)
 
Zuletzt bearbeitet:

rme

Top Contributor
Richtig, in Java muss man da eine andere Lösung suchen:

Java:
int methode(int eingabe, int[] ausgabe) {
 ausgabe[0] = 1;
 return 2;
}
...
int[] ausgabe = new int[1];
int y = methode(23, ausgabe);
// nun habe ich zwei Werte aus der Methode: Rückabewert y und ausgabe[0]

Ich persönlich empfinde das nicht als schönen Stil, hab es aber schon öfter innerhalb von Swing-Klassen gesehen, also in der offiziellen Implementierung.

Variante 2:

Java:
class Wert{public int x;}
int methode(int eingabe, Wert ausgabe) {
  ausgabe.x = 2;
  return 1;
}
...
Wert ausgabe = new Wert();
int y = methode(23, ausgabe);
// wieder 2 Werte: y und ausgabe.x

Auch nicht so schön, aber immerhin einigermaßen sauber.

Variante 3:
Java:
class Rückgabe {public int x, int y;}
Rückgabe methode(int eingabe) {
  Rückgabe res = new Rückgabe();
  res.x = 2;
  res.y = 1;
}
...
Rückgabe res = methode(23);
// wieder 2 Werte: res.x und res.y

Diese Variante ist ganz Ok, wenn man die Klasse vernünftig benennt usw.

In der Praxis kommt es darauf an, was du eigentlich machen möchtest - normalerweise hat man in Java immer Objekte und kann Werte auch im Objekt speichern, d.h. als Instanzvariable. Ich habe solche Tricks nur sehr selten benötigt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8 Referenz (Pointer, Zeiger) in Java Java Basics - Anfänger-Themen 9
D tiefergehende Java-Referenz Java Basics - Anfänger-Themen 3
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
C Kopie oder Referenz ? Java Basics - Anfänger-Themen 5
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
Y Pointer / Referenz - Theorie Java Basics - Anfänger-Themen 3
H Referenz Objekt aufrufen Java Basics - Anfänger-Themen 12
D Uebergabe per Referenz Java Basics - Anfänger-Themen 2
O Referenz - toString Java Basics - Anfänger-Themen 9
S This-Referenz Java Basics - Anfänger-Themen 6
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
I Referenz auf Klasse als Rückgabewert Java Basics - Anfänger-Themen 7
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
J Referenz und Instanzierung Java Basics - Anfänger-Themen 25
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
O This-Referenz als Returnwert einer Methode? Java Basics - Anfänger-Themen 13
O This Referenz Java Basics - Anfänger-Themen 3
A top referenz bei queues Java Basics - Anfänger-Themen 1
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
Q Parameterübergabe - Objekt - Referenz Java Basics - Anfänger-Themen 5
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
V Frage zu Polymorphismus: Objekt der Subklasse in Referenz der Oberklasse Java Basics - Anfänger-Themen 4
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
C Referenz auf ein Objekt kopieren! Java Basics - Anfänger-Themen 2
J Methoden Referenz und Speicherplatz für Objekte reservieren Java Basics - Anfänger-Themen 2
M Wie komm ich an die Referenz eines Oberflächenelements Java Basics - Anfänger-Themen 2
A Klassenvariablen Referenz auf ein Objekt Java Basics - Anfänger-Themen 18
M Referenz Frage Java Basics - Anfänger-Themen 12
K OOP Probleme mit Objekt-Referenz in Methode Java Basics - Anfänger-Themen 6
W Die leidige Referenz-Frage Java Basics - Anfänger-Themen 9
B Arraycopy kopiert nur die Referenz?! Java Basics - Anfänger-Themen 3
S Speicheradresse auf die eine Referenz zeigt ausgeben Java Basics - Anfänger-Themen 12
E Compiler-Fehler kann Objekt-Referenz nicht erstellen Java Basics - Anfänger-Themen 3
B Referenz zu anderen Frame Java Basics - Anfänger-Themen 10
Blackskyliner Referenz ähnlicher Zugriff, aber wie? Java Basics - Anfänger-Themen 4
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
H Objekt holen per Referenz als String. Java Basics - Anfänger-Themen 4
T Referenz einer Variable übergeben Java Basics - Anfänger-Themen 3
S Datentypen Objekt Integer Referenz Java Basics - Anfänger-Themen 5
B Referenz auf Referenz Java Basics - Anfänger-Themen 3
Luk10 Problem mit Singleton bzw statischer Referenz! Java Basics - Anfänger-Themen 16
H ArrayList Zugriffe per Referenz verkürzen? Java Basics - Anfänger-Themen 9
B Static Referenz auf Non-static Feld Java Basics - Anfänger-Themen 6
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
C0FFEE Referenz auf Methode übergeben Java Basics - Anfänger-Themen 2
aze NullpointerException :Null Referenz anzeigen lassen Java Basics - Anfänger-Themen 2
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
N this.referenz erläuterung Java Basics - Anfänger-Themen 2
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2
P OOP-Theorie-Frage: Referenz auf Objekt Java Basics - Anfänger-Themen 27
D Referenz auf Objekt Java Basics - Anfänger-Themen 5
P Methode BigInteger-Array übergeben als Referenz Java Basics - Anfänger-Themen 6
U null-referenz Java Basics - Anfänger-Themen 26
deetee Problem mit Referenz auf Map Java Basics - Anfänger-Themen 5
G Interface referenz probleme Java Basics - Anfänger-Themen 10
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
D enum und Referenz der umgebenden Klasse Java Basics - Anfänger-Themen 2
C Referenz Java Basics - Anfänger-Themen 11
A ClassNotFoundException: Referenz nicht aktualisiert Java Basics - Anfänger-Themen 2
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
T Die this Referenz Java Basics - Anfänger-Themen 21
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G primitive Datentypen als Referenz an eine Methode übergeben Java Basics - Anfänger-Themen 2
G Wie Referenz auf Objekt übergebn Java Basics - Anfänger-Themen 8
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
S Prüfen, ob null Referenz? Java Basics - Anfänger-Themen 2
G Referenz-Problem Java Basics - Anfänger-Themen 3
J Referenz problem Java Basics - Anfänger-Themen 12
M Referenz auf Membervariable Java Basics - Anfänger-Themen 5
G Objektübergabe als Referenz bei RMI Java Basics - Anfänger-Themen 2
J referenz auf noch nicht erzeugte objekte? Java Basics - Anfänger-Themen 2
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
M Parameter als Referenz übergeben Java Basics - Anfänger-Themen 5
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
D Unterschied zwischen Referenz auf Objekt/Instanz von Objekt Java Basics - Anfänger-Themen 9
K Referenz auf Funktion Java Basics - Anfänger-Themen 6
J Referenz auf ein Objekt Java Basics - Anfänger-Themen 2
javasdann Referenz als String ausgeben. Java Basics - Anfänger-Themen 10
B Was ist eine Referenz? Java Basics - Anfänger-Themen 6
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
G Zeiger/Referenz auf int- Variable Java Basics - Anfänger-Themen 5
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben