Referenz einer Variable übergeben

TKausL

Top Contributor
Hallo.

Ich google und google aber finde nicht wirklich was brauchbares <.<

Problem ist folgendes:
Java:
main(){
  int i = 0;
  methode1(i);
  //i ausgeben
}
methode1(int zahl){
  zahl++;
}

beim ausgeben sollte nun 1!!! rauskommen.
Ich habe irgendwo mal gelesen dass/wie das geht. ich komme aber nicht mehr drauf...
habs schon mit methode(int &zahl) versucht, aber Eclipse nimmt das nicht an...
 

ARadauer

Top Contributor
Im Grunde ist Java CallByValue. Das heißt bei primitiven Datentypen wird der Wert übergeben, also kopiert.
Eigentlich ist es bei Objekten genauso, es wird aber die Referenz kopiert. Also adresse wohin gezweigt wird. Änderst du dann das Objekt. Ändert es sich auch beim Aufrufer, da es ja das selbe ist:

Java:
public class Test
{

	public int wert;

	public static void main(String[] args)
	{
		Test test = new Test();
		test.wert = 2;
		methode(test);
		System.out.println(test.wert);
		methode(test.wert);
		System.out.println(test.wert);
	}

	public static void methode(Test test)
	{
		test.wert++;
	}
	
	public static void methode(int wert)
	{
		wert++;
	}
}

Wie gesagt, Objektereferenzen werden auch kopiert... das geht somit nicht

Java:
public static void change(Test test)
	{
		test = new Test(); 
		test.wert=99;
	}
hier ändert sich der Wert beim Aufrufer nicht, da das test in Main noch immer auf das alte Objekt zeigt.

Ist vielleicht etwas verwirrend, aber das ist soch sehr wichtig, spiel ein bisschen damit rum, dann wirds klarer...
 

Andi_CH

Top Contributor
Ich hab da vor Kurzem eine Demo geschrieben die zeigt was geht und was nicht

Java:
public class CallValueCallRefDemo {

	public static class MyInt {
		private int value = 0;
		public void set(int i) { value = i; }
		public int get() {return value; }
		public String toString(){ return ""+value; }
	}

	private static void setValue(int pValue) {
		System.out.println("setValue(int): Parameter vor dem Setzen = " + pValue);
		// Bewirkt ausserhalb ncihts, da pValue eine Kopie ist
		pValue = 999;
		System.out.println("setValue(int): Parameter nach dem Setzen = " + pValue);
	}

	private static void setValue(Integer pValue) {
		System.out.println("setValue(Integer): Parameter vor dem Setzen = " + pValue);
		// Hier wird implizit ein neuer Integer angelegt
		// Da aber pValue nur eine Kopie der eigentlichen Referenz ist, bewirkt das nichts
		// Integer hat aus mir unbekannten Gründen keine set Methode
		pValue = 999;
		System.out.println("setValue(Integer): Parameter nach dem Setzen = " + pValue);
	}

	private static void setValue(MyInt pValue) {
		System.out.println("setValue(MyInt): Parameter vor dem Setzen = " + pValue.get());
		pValue.set(999);
		System.out.println("setValue(MyInt): Parameter nach dem Setzen = " + pValue.get());
	}

	public static void main(String[] args) {
		int i = 1;
		System.out.println("int im Main vor dem Aufruf " + i);
		setValue(i);
		System.out.println("int im Main nach dem Aufruf " + i);
		System.out.println();
		Integer j = 2;
		System.out.println("Integer im Main vor dem Aufruf " + j);
		setValue(j);
		System.out.println("Integer im Main nach dem Aufruf " + j);
		System.out.println();
		MyInt k = new MyInt();
		k.set(2);
		System.out.println("MyInt.value im Main vor dem Aufruf " + k);
		setValue(k);
		System.out.println("MyInt.value im Main nach dem Aufruf " + k);
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
I Erste Schritte Referenz zum Knoten davor, in einer Liste Java Basics - Anfänger-Themen 4
O This-Referenz als Returnwert einer Methode? Java Basics - Anfänger-Themen 13
C Referenz einer bereits instanziierten Klasse während des Programmablaufs Java Basics - Anfänger-Themen 16
D Fehlen einer Referenz auf Objekt Java Basics - Anfänger-Themen 14
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
G Rückgabe einer Kopie bzw. Referenz Java Basics - Anfänger-Themen 22
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
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
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
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
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
8 Referenz (Pointer, Zeiger) in Java Java Basics - Anfänger-Themen 9
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
B Referenz in Java 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
H Objekt holen per Referenz als String. Java Basics - Anfänger-Themen 4
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
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
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
D tiefergehende Java-Referenz Java Basics - Anfänger-Themen 3
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
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
L Referenz vs. Kopie Java Basics - Anfänger-Themen 2
G Zeiger/Referenz auf int- Variable Java Basics - Anfänger-Themen 5
F http post einer Webseite nachahmen Java Basics - Anfänger-Themen 3
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable bei aktivieren einer Zelle soll Text selektiert werden. Java Basics - Anfänger-Themen 24
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben