Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

consulta curso java.util, clase conociendo arrays video 07 objetos

Buenas tardes, necesito ayuda con una duda, cuando intento imprimir cc o cuentas[1] no me imprime como al instructor, sino la dirección de memoria. ¿a que se puede deber? Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad )

4 respuestas

Hola Cristian , espero que estés muy bien.

Le pido que comparta su codigo con nosotros, porque la imagen no estas buena para ver.

Un saludo.

package com.bytebank.test;

import com.bytebank.modelo.Cuenta;
import com.bytebank.modelo.CuentaAhorro;
import com.bytebank.modelo.CuentaCorriente;

public class TestArregloReferencias {

    public static void main(String[] args) {

        CuentaCorriente cc = new CuentaCorriente(23, 44);
        CuentaAhorro ca = new CuentaAhorro(24, 45);

        Cuenta[] cuentas = new Cuenta[5];
        cuentas[1] = cc;
        cuentas[3] = ca;

        System.out.println(cc);
        System.out.println(cuentas[1]);



    }

}

imprime en consola:

com.bytebank.modelo.CuentaCorriente@2d363fb3 com.bytebank.modelo.CuentaCorriente@2d363fb3

clase cuenta

package com.bytebank.modelo;

/**
 * Cuenta va a crear nuevas instancias de CuentaCorriente y CuentaAhorro
 * 
 * @version 1.0
 * @author crizgize
 *
 */
public abstract class Cuenta {

    protected double saldo;//al utilizar private ya no se puede acceder al parametro saldo desde una instancia para modificarlo.
    private int agencia = 1;
    private int numero;
    private Cliente titular = new Cliente();
    private static int total = 0; // variable estatica, es pasa a ser un atributo de la clase y no de sus posibles instancias.



    //constructor
    public Cuenta(int agencia, int numero) { // cual es la ventaja? con el constructor obliga a colocar un valor a agencia.
        this.agencia = agencia;
        this.numero = numero;
        Cuenta.total ++;
    }

    // metodo sin retorno (void)
    public abstract void depositar(double monto);

    public void retirar(double monto) throws SaldoInsuficientException {
        //por buenas practicas las excepciones van al principio del metodo
        if (this.saldo < monto) {
            throw new SaldoInsuficientException("no tiene saldo");
        }
            this.saldo -= monto;

    }

    public boolean transferir(double monto, Cuenta cuenta){
        if(this.saldo >= monto) {
            try {
                this.retirar(monto);
            } catch (SaldoInsuficientException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            cuenta.depositar(monto);
            return true;
        } else {
            return false;
        }
    }

    public double getSaldo() {
        return this.saldo;
    }

    public void setAgencia(int agencia) {
        if(agencia>0) {
        this.agencia = agencia;
        } else {
            System.out.println("agencia invalida");
        }
    }

    public int getAgencia() {
        return agencia;
    }

    public void setTitular(Cliente titular) {
        this.titular = titular;
    }

    public Cliente getTitular() {
        return titular;
    }

    public static int getTotal() {
        return total;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }
}

me faltara implementar algun metodo?

solución!

Hola Cristian,

Solucione ese error con la implementacion de este metodo al final de cuenta:

    @Override
    public String toString() {
        String cuenta = "Numero: " + this.numero + ", Agencia:" + this.agencia;
        return cuenta;

Ojala te sea de utilidad.

Perfecto, solucionado, muchas gracias Javier!!