G
Neuer2123 schrieb:
Hallo,
Mir ist nicht ganz klar, weshalb folgende Funktion keine Vertauschung bewirkt.
public static void swap(MyClass c1, MyClass c2){
MyClass temp = c1;
c1 = c2;
c2 = temp;
}
Bei Java wird doch eine Klasse immer als Referenz übergeben oder nicht?
Die Referenzen werden aber selbst "per Value" übergeben. Lokal innerhalb Deiner Methode findet also eine Vertauschung statt. Nach außen hin aber nicht.
...und BTW: Nebeneffekte von Methoden sind im Allgemeinen auch sehr kritisch zu sehen. Damit sollte man vorsichtig umgehen, weil sonst sehr leicht schwer handhabbarer Code entsteht. ...Bei so einem Swap natürlich nicht unbedingt.
...im Prinzip willst Du hier ja prozedurale Programmierung betreiben und das ist eben nicht das Programmierparadigma, das von Java in erster Linie unterstützt wird. Dafür ist eher C oder C++ gedacht. ...oder Pascal oder so.