Java – Swap-Funktion
某草草
某草草 2017-05-17 10:05:49
0
1
731

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
{

ist
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);
}

}

某草草
某草草

Antworte allen(1)
習慣沉默

在Java世界中函数或者叫方法的入参都是通过值拷贝的方式进行传递:

原始类型(char,int,double等)都是通过直接拷贝变量值传参;
对象类型都是通过引用拷贝(跟C++中引用不同)传参,通过该引用能够更改其指向的对象内部值,但是更改该引用值,仅对函数内部可见,函数外部的实参依然没有改变;

正常来说,java不能实现。
并且int对象内部private final int value;是final的

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage