Swap

Status
Nicht offen für weitere Antworten.
H

hazel

Gast
hallo,

habe dieses Programmstück
Ihr kennt sicherlich das klassiche Swap-Programmstück. Es geht mir hier um das Verständnis. Weshalb geht dieses Swap nicht? bzw. wieso tauscht er die Variablen nicht? Wegen Call by Value?
Wenn ich z.B die printausgabe in der Methode schreibe, dann werden die Werte vertauscht. Habe das auch mit "Integer pa, Integer p2" probiert. Gibt es etwa ein Unterschied zwischen Integer p1, und int p1 bem Vertauschen?
Code:
public class Swap {

	static void wrongSwap(int p1, int p2){
		int tmp;
		tmp=p1;
		p1=p2;
		p2=tmp;
		
	}

	

	public static void main(String[] args) {
		int  p1=2;
		int p2=4;
		wrongSwap(p1,p2);
		System.out.println(p1+", "+p2);

	}

}

gruß
hazel
 

JFreak

Bekanntes Mitglied
So wie du das hier machen willst, kann das nicht funktionieren.

Fall 1: Du übergibst native Datentypen. Die werden beim Aufruf kopiert und dadurch beim Verlassen der Funktion wieder gelöscht.
Fall 2: Du übergibst Referenzen. Da werden zwar die Objekte nicht kopiert, wohl aber die Zeiger an sich. Du kannst diese zwar verändern, aber auch nur innerhalb einer Funktion.

Was du brauchst, sind Instanzen von z. B. Reference.

[EDIT] Sorry, zu spät. [/EDIT]
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben