Maison  >  Questions et réponses  >  le corps du texte

java - fonction d'échange

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

}

某草草某草草2712 Il y a quelques jours668

répondre à tous(1)je répondrai

  • 習慣沉默

    習慣沉默2017-05-17 10:07:49

    Dans le monde Java, les paramètres d'entrée des fonctions ou des méthodes sont transmis via une copie de valeur :

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

    Normalement parlant, Java ne peut pas l'implémenter.
    Et l'intérieur de l'objet int private final int value; est définitif

    répondre
    0
  • Annulerrépondre