Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Se cambio el codigo

Hola! Tengo la dificultad de que se cambian los terminos en el codigo y no me da el mismo resultado que el profesor. En este caso no se que codigo deberia pasar ya que se estas usando varias clases. voy a pasar el que yo creo que esta con error y que lo e ido arreglando a medida que paso las clases pero ya hasta aqui no funciona.

public class Cuenta {

    private double saldo;
    private int agencia = 1;
    private int numero;
    private Cliente titular = new Cliente();

    private static int total;

    public Cuenta(int agencia, int numero) {  
        this.agencia = agencia;
        this.numero = numero;
        System.out.println("Estoy creando una cuenta " + total);


        Cuenta.total++;
    }

    public void depositar(double valor) {
        this.saldo += valor;
    }

    public boolean retirar(double valor) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        } else {
            return false;    
        }
    }
    public boolean transferir(double valor, Cuenta cuenta) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            cuenta.depositar(valor);
            return true;
        } 
        return false;
    }
    public double getSaldo() {
        return this.saldo;
    }

    public int getAgencia() {
        return this.agencia;
    }

    public int getNumero() {
        return this.numero;
    }

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

    public Cliente getTitular() {
        return titular;
    }

    public static int getTotal() {
        return Cuenta.total;
    }
}

public class CuentaCorriente extends Cuenta {

    public CuentaCorriente(int agencia, int numero) {
        super(agencia, numero);
    }

    @Override
    public boolean retirar(double valor) {
        double comision = 0.2;
        return super.retirar(valor + comision);
    }

}

Que al darle Run en el testCuenta no me da el resultado esperado:

public class TestCuenta {

    public static void main(String[] args) {
        CuentaCorriente cc = new CuentaCorriente(1, 1);
        CuentaAhorros ca = new CuentaAhorros(2, 3);
        cc.depositar(2000);
        cc.transferir(1000, ca);

        System.out.println(cc.getSaldo());
        System.out.println(ca.getSaldo());

    }

}

Agradezco a quien me pueda ayudar a resolverlo. Muchas Gracias!

2 respuestas
public boolean transferir(double valor, Cuenta cuenta){
        if(this.saldo >= valor) {
            this.retirar(valor);
            cuenta.depositar(valor);
            return true;
        }
        return false;
    }

eso cambia y te da es que no llamas a retirar lo restas directamente al saldo

Muchas Gracias!!