Maison > Java > javaDidacticiel > Comment les arguments sont transmis

Comment les arguments sont transmis

PHPz
Libérer: 2024-08-24 06:34:08
original
904 Les gens l'ont consulté

Deux façons de transmettre des arguments aux méthodes :

Appel par valeur :

  • Copie la valeur de l'argument dans le paramètre formel du sous-programme.
  • Les modifications apportées au paramètre dans la méthode n'affectent pas l'argument d'origine.

Appel par référence :

  • Passe une référence à l'argument, pas à la valeur.
  • Les modifications apportées au paramètre affectent l'argument d'origine dans l'appel.

Passage de type primitif :

  • Lorsqu'un type primitif (tel que int ou double) est transmis, l'appel par valeur est utilisé.
  • La méthode reçoit une copie de l'argument, donc les modifications apportées au sein de la méthode n'affectent pas la valeur d'origine.

Exemple :

class Test {
    void noChange(int i, int j) {
        i = i + j;
        j = -j;
    }
}

class CallByValue {
    public static void main(String[] args) {
        Test ob = new Test();
        int a = 15, b = 20;
        System.out.println("a and b before call: " + a + " " + b);
        ob.noChange(a, b);
        System.out.println("a and b after call: " + a + " " + b);
    }
}

Copier après la connexion

Passage d'objet :
Lorsqu'un objet est passé à une méthode, Java utilise l'appel par référence.
La méthode reçoit une référence à l'objet, ce qui signifie que les modifications apportées au sein de la méthode affectent l'objet d'origine.

Exemple :

class Test {
    int a, b;
    Test(int i, int j) {
        a = i;
        b = j;
    }
    void change(Test ob) {
        ob.a = ob.a + ob.b;
        ob.b = -ob.b;
    }
}

class PassObRef {
    public static void main(String[] args) {
        Test ob = new Test(15, 20);
        System.out.println("ob.a and ob.b before call: " + ob.a + " " + ob.b);
        ob.change(ob);
        System.out.println("ob.a and ob.b after call: " + ob.a + " " + ob.b);
    }
}

Copier après la connexion

Les modifications apportées à la méthode change() affectent l'objet ob passé en argument.

Différence entre les types primitifs et les objets :
Types primitifs : Passés par valeur, les modifications apportées à la méthode n'affectent pas les valeurs d'origine.
Objets : Passés par référence, les modifications apportées à la méthode affectent l'objet d'origine.

Résumé final :
La transmission d'arguments en Java peut se faire par valeur ou par référence. Les types primitifs sont transmis par valeur, tandis que les objets sont transmis par référence, ce qui entraîne des effets différents sur les arguments d'origine.

Como os argumentos são passados

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal