Im folgenden Code wird der Effekt des Austauschs zweier Objekte nicht erreicht
Das Ausgabeergebnis ist 3:4
Sind logischerweise nicht alle Referenzen in Java möglich? Sie sollten in der Lage sein, Objekte direkt auszutauschen!
Bitte erklären Sie meinen Fehler und geben Sie eine Lösung.
Ich möchte, dass die Ausgabe 4:3
class Int
{
public int x;
}
öffentliche Klasse Hallo {
void swap(Int a,Int b)
{
Int t=a;
a=b;
b=t;
}
public static void main(String[] args) {
Hello hello=new Hello();
Int a=new Int();
Int b=new Int();
a.x=3;
b.x=4;
hello.swap(a,b);
System.out.println(a.x+":"+b.x);
}
}
在Java世界中函数或者叫方法的入参都是通过值拷贝的方式进行传递:
正常来说,java不能实现。
并且int对象内部
private final int value;
是final的