Dans le code suivant, l'effet de l'échange de deux objets n'est pas obtenu
Le résultat de sortie est 3:4
Logiquement parlant, toutes les références en Java ne devraient-elles pas pouvoir échanger des objets directement !
Veuillez expliquer mon erreur et donner une solution.
Je veux que la sortie soit au format 4:3
class Int
{
public int x;
}
cours public Bonjour {
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);
}
}
Dans le monde Java, les paramètres d'entrée des fonctions ou des méthodes sont transmis via une copie de valeur :
Normalement parlant, Java ne peut pas l'implémenter.
Et l'intérieur de l'objet int
private final int value;
est définitif