Sobes.tech
Junior — Middle

Comment se fait le transfert de variables par référence lors de l'appel de méthodes?

sobes.tech IA

Réponse de l'IA

En Java, la transferencia de parámetros a los métodos siempre se realiza por valor, es decir, se copia el valor de la variable. Sin embargo, si se pasa un objeto, se copia la referencia al objeto, no el objeto en sí. Esto a menudo se llama "paso por referencia", pero en realidad se pasa una copia de la referencia.

Esto significa que dentro del método se puede cambiar el estado del objeto al que hace referencia el parámetro, pero no se puede cambiar la propia referencia para que apunte a otro objeto.

Ejemplo:

class MyObject {
    int value;
}

public class Example {
    public static void modifyObject(MyObject obj) {
        obj.value = 10; // cambiamos el estado del objeto
        obj = new MyObject(); // cambiamos la copia local de la referencia
        obj.value = 20; // este cambio no afectará al objeto fuera del método
    }

    public static void main(String[] args) {
        MyObject myObj = new MyObject();
        myObj.value = 5;
        modifyObject(myObj);
        System.out.println(myObj.value); // mostrará 10
    }
}

Aquí se puede ver que el cambio en el estado del objeto dentro del método se mantiene, pero la reasignación de la referencia no.