B
Behemmschuh
Gast
Wenn ich folgendes habe:
Dann werden in func zwar a und b vertausch, aber in main bleiben die ursprünglichen Variablenwerte die gleiche, weil beim Funkitonsaufruf ein copy by value stattfindet und func mit lokalen kopien arbeitet.
Gebe ich func einen return Wert, z.b. int, dann kann ich nur einen einzigen Wert zurückgeben, also entweder a oder b, nicht aber beide.
Würde ich a und b in ein Array packen, dann könnte ich die Werte zwar alle zurückgeben, aber in mein müßte ich dann ein array erstellen und das Zeugs wieder auseinanderfrimmeln, also den originalvariablen wieder zuweisen.
Um es also kurz zu machen, ich hätte gerne eine Parameterübergabe via Pointer, wie bei C.
Also eine Call by Reference.
So daß func mit den Originalvariablen aus main arbeitet und diese innerhalb func verändert werden und dann auch entsprechend bei der Rückkehr zu main verändert sind.
Geht das in Java irgendwie, ohne jetzt auch statische Klassenvariablen oder Objektvariablen zu benutzen? D.h. die Variablen sollen in main lokal erzeugt werden und dann entsprechend weiterbenutzt werden.
Java:
class{
private static void func(int a, int b){
int x;
x = a;
a = b;
b = a;
}
public static void main(String[] args){
int a = 2;
int b = 4;
func(a, b);
System.out.println("a = " + a + " ,b = " + b);
}
Dann werden in func zwar a und b vertausch, aber in main bleiben die ursprünglichen Variablenwerte die gleiche, weil beim Funkitonsaufruf ein copy by value stattfindet und func mit lokalen kopien arbeitet.
Gebe ich func einen return Wert, z.b. int, dann kann ich nur einen einzigen Wert zurückgeben, also entweder a oder b, nicht aber beide.
Würde ich a und b in ein Array packen, dann könnte ich die Werte zwar alle zurückgeben, aber in mein müßte ich dann ein array erstellen und das Zeugs wieder auseinanderfrimmeln, also den originalvariablen wieder zuweisen.
Um es also kurz zu machen, ich hätte gerne eine Parameterübergabe via Pointer, wie bei C.
Also eine Call by Reference.
So daß func mit den Originalvariablen aus main arbeitet und diese innerhalb func verändert werden und dann auch entsprechend bei der Rückkehr zu main verändert sind.
Geht das in Java irgendwie, ohne jetzt auch statische Klassenvariablen oder Objektvariablen zu benutzen? D.h. die Variablen sollen in main lokal erzeugt werden und dann entsprechend weiterbenutzt werden.