1
respuesta

[Duda] Duda sobre el funcionamiento de reerencias

Si al crear un nuevo objeto y asignarle el valor de un objeto existente hace que estos tengan la misma referencia haciendo que actuen como uno, que ocurre cuando esta asignacion de valor ocurre despues de la creacion, como por ejemplo:

Creacion del objeto producto:

public class Producto {

    private String nombre;
    private double precio;


    public String getNombre() {
        return nombre;
    }

    public double getPrecio() {
        return precio;
    }
    
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }
}

Procesamiento

public class Prueba{

    public static void main(String[] args) {
        Producto p1 = new Producto();
        Producto p2 = new Producto();
        p1.setNombre("Cafe");
        p1.setPrecio(13.00);
        
        p2 = p1;
        
    }
}

En este caso se asignara la misma referencia a ambos o solo se copiaran los valores?

1 respuesta

Efectivamente, en estas haciendo referencia al mismo tiempo, una forma de verificarlo es por sout, te recomiendo hacer 3 sout, uno por cada comprobaci'on. El primero sout del nombre de P1 y P2, resultado cafe en este ejemplo. Ahora intentando cambiar solo el nombre de p1 y hacer sout por ejemplo con "té". Y un tercer sout cambiando solo el nombre de p2 y hacer nuevamente un sout, volviendo a llamarlo "café". Ahí puedes verificar que p1 y p2 hacen referencia al mismo objeto.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad