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

[Duda] Mi System.out.println(cuentas[1]); IMPRIME La direccion en la memoria

Y no se a que se debe hasta copie de github la clase cuenta corriente a ver si hice algo mal pero aun asi sigue

7 respuestas
solución!

Hola Jason, espero que estés bien.

Compruebe la suscrita del método toString(); de la clase Object en tu Clase, para poder mostrar el contenido de tu object. Te olvidastes de compartir tu código con nosotros, te dejo a continuación un video que te enseñará a compartir tu código en nuestro foro.

Espero haberte podido ayudar, mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios
Hola ADRIANA te puedo mandar mi codigo? Tengo la misma duda que Vicente y no se donde el metodo toString(); y una duda no s supone que la clase Object es la clase padre de todos y solo es de Solo Lectura?  muchas gracias


import modelo.CuentaCorriente;

public class TestArregloReferencias {
    public static void main(String[] args) {
        //La variable cc es la referencia al objeto cuenta corriente con estos argumentos
        CuentaCorriente cc = new CuentaCorriente(23, 44);
        //                          [   | cc |   |   |   ] Esta cc ahora apunta a CuentaCorriente
        CuentaCorriente[] cuentas = new CuentaCorriente[5];
        cuentas[1] = cc;   //La var cc que apunta a new CuentaCorriente(23,44) esta almacenada en esta cc;
        //No estamos creando ningun objeto.
        System.out.println(cc);
        System.out.println(cuentas[1]);

        cuentas[0] = new CuentaCorriente(11, 99);
        System.out.println(cuentas[0]);

        for (int i = 0; i < cuentas.length; i++) {

            System.out.println(cuentas[i]);

        }

    }
}

LA SALIDA ES 


Estoy creando una cuenta 44
modelo.CuentaCorriente@7cc355be
modelo.CuentaCorriente@7cc355be
Estoy creando una cuenta 99
modelo.CuentaCorriente@6e8cf4c6
modelo.CuentaCorriente@6e8cf4c6
modelo.CuentaCorriente@7cc355be
null
null
null

Hola ADRIANA ya logre checar el metodo toString pero me lo imprime varias veces, te muestro el codigo y la salida.

En la clase Cuenta:
}

    @Override
    public String toString() {
        return "agencia: " + agencia +"\n" + "numero: " + numero;
    }
    
    Y en el TestArregloReferencias la salida es esta
    
    Estoy creando una cuenta 44
agencia: 23
numero: 44
agencia: 23
numero: 44
Estoy creando una cuenta 99
agencia: 11
numero: 99
agencia: 11
numero: 99
agencia: 23
numero: 44
null
null
null
    
    

EN ALGO ESTOY MAL

Ya vi que lo imprime varias veces como el instructor y no precisamente estoy mal pero me queda la duda de por que imprime 3 veces la segunda cuenta (99) ya entendi la cuenta 44 se imprime 2 veces, me queda claro. Pero la segunda son 3 veces y supuestamente es el casillero [cero] Creo es por el FOR pero no entiendo cuando dice: EL NO SABE QUE HAY EN EL FOR

cuentas[0] = new CuentaCorriente(11, 99);
        System.out.println(cuentas[0]);

        for (int i = 0; i < cuentas.length; i++) {

            System.out.println(cuentas[i]);
            
            
            Estoy creando una cuenta 99
agencia: 11 numero: 99
agencia: 11 numero: 99
agencia: 23 numero: 44

¿POR QUE SE IMPRIME ASI????

Buenas tardes compañeros, al igual que ustedes tengo la misma duda, ya veo que al sobrescribir el método toString en el objeto cuenta como lo menciona nuestro compañero Edgar, pero me queda la duda del por que? asi como se repite. Saludos!

Ya encontre el error, estaba en la sobre escritura del metodo toString, ya me imprimir tal cual, mi duda sigue siendo el por que debemos sobre escribir el método y por que en la clase Cuenta. Gracias a todos!

Igual ya lo resolvi saludos Jovanhys

Excelente Edgar Saludos!