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

[Sugerencia] No se resta la comision

Si tienes problemas con el codigo y no resta la comision, se debe a que la Clase Cuenta ha tenido un pequeño cambio:

Actualmente puede ser que el metodo transfiere lo tengas asi:

    public boolean transfiere(double valor, Cuenta destino) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            destino.deposita(valor);
            return true;
        } else {
            return false;
        }
    }

Bueno, respecto a la version que veniamos trabajando, ahora ha sido modificado el metodo, y ya no se resta el valor al saldo, si no que se hace atravez del metodo saca:

   public boolean transfiere(double valor, Cuenta destino) {
        if(this.saldo >= valor) {
            this.saca(valor);
            destino.deposita(valor);
            return true;
        } else {
            return false;
        }
    }
7 respuestas

Hola Jorge, ¡espero que estés bien!

Gracias por tu aporte, esperamos que disfrutes mucho del contenido del curso y que esto te ayude a llegar lejos.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte. ¡Un saludo!

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Gracias por la ayuda compañero Jorge, estaba perdiendo la cabeza buscando la razon del error. Eres grande !!!1

Un abrazo.

Hola, de igual manera no lo resta, intenté corregir el código a como lo expusiste aquí y lo que hice para que compilara como ellos lo hicieron es literalmente en la clase "CuentaCorriente" fue ponerlo de la siguiente manera:

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

No sé como es que a ustedes si les compilo como al instructor.

Hola compañeros, asi como lo comenta el compañero Jorge Alberto hay que prestar atención despues de cambiar el metodo con el .saca, y tambien acordarse de haberlo generado el metodo

Metodo Saca

    public boolean saca(double valor) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        
        }else {
            return false;
        }
        

Despues la implementación de el mismo en el metodo transfiere (Poner atención a las variables declaradas).

   public boolean transfiere(double valor, Cuenta destino) {
        if(this.saldo >= valor) {
            this.saca(valor);
            destino.deposita(valor);
            return true;
        } else {
            return false;
        }
    }

Por ultimo el llamarlo de manera correcta en la clase Cuenta Corriente

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

Y ya hacer su prueba correspondiente en el Test de las Cuentas imprimiendo los saldos.

    public static void main(String[] args) {
        CuentaCorriente cc = new CuentaCorriente(2, 3);
        CuentaAhorros ca = new CuentaAhorros(1, 3);
        cc.depositar(2000);
        cc.transfiere(1000, ca);
        System.out.println(cc.getSaldo());
        System.out.println(ca.getSaldo());
        
    }

Excelente dia Compañeros :)

Y compañero Aldo el problema con este instructor es que no es consistente con su enseñanza, a veces cambia los metodos, de alguna manera para perfeccionarlos, pero ya te percatas despues de que te esta generando un mega problema, ya van varias veces que me habia dejado de compilar por lo mismo, hace muchos cambios de nombre de variables, a lo mejor es intencional para alentarnos a depurar el codigo, pero es muy desesperante por lo menos para mi jajaja.

Disculpen, alguien podría explicarme ¿por que se realizó este cambio?

El cambio se realizo en principio por que queríamos implementar, una comisión por determinada transacción que la Cuenta corriente denominada como "cc" hace cuando transfiere dinero a la cuenta de ahorros con destino "ca", sin embargo el anterior metodo nos iba a genera una dificultad al quererlo implementar por lo que ocupamos definir bien el constructor desde el inicio para llamarlo correctamente, y en si el metodo es el que le da la la condicion de si podra o no hacer la operación.