Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Duda] REFERENCIA

public class CrearCuenta { public static void main(String[] args) { Cuenta primeraCuenta = new Cuenta(); primeraCuenta.saldo = 200; System.out.println(primeraCuenta.saldo);

    primeraCuenta.saldo += 100;
    System.out.println(primeraCuenta.saldo);
    
    Cuenta segundaCuenta = primeraCuenta;
    segundaCuenta.saldo = 50;
    
    System.out.println("primera cuenta tiene " + primeraCuenta.saldo);/
    
    System.out.println("segunda cuenta tiene " + segundaCuenta.saldo);
    

** / PORQUE LOS SALDOS SON IGUALES SI ARRIBA, EN NINGUN MOMENTO SE DIJO

//QUE primeraCuenta.saldo = segundaCuenta.saldo y al imprimir muestran el mismo valor si se supone que el saldo de la primera cuenta nunca se le asigno al saldo de la segunda?**

    System.out.println(primeraCuenta);
    System.out.println(segundaCuenta);
    /*Cuenta segundaCuenta = new Cuenta();
    segundaCuenta.saldo = 400;
    System.out.println(segundaCuenta.saldo);
    
    System.out.println(primeraCuenta);
    System.out.println(segundaCuenta);*/
    
    /*if (primeraCuenta == segundaCuenta) {
        System.out.println("Son el mismo objeto");
    }else {
        System.out.println("Son diferentes");
    }*/
}

}

2 respuestas
solución!

¡Hola Luis!

En tu código, cuando asignas "segundaCuenta = primeraCuenta", estás haciendo que ambas variables apunten al mismo objeto en memoria. Por lo tanto, cualquier cambio que hagas en una variable se reflejará en la otra, ya que ambas están apuntando al mismo objeto.

En este caso, cuando cambias el saldo de "segundaCuenta", también estás cambiando el saldo de "primeraCuenta", ya que ambas variables apuntan al mismo objeto. Por eso, al imprimir los saldos, ambos muestran el mismo valor.

Espero que esto resuelva tu duda. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Espero haber ayudado y buenos estudios!

ah ok gracias por la aclaracion y ayuda