Deux façons de transmettre des arguments aux méthodes :
Appel par valeur :
Appel par référence :
Passage de type primitif :
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); } }
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); } }
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.
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!