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

[Duda] Java orientacion objetos

Tengo los métodos de retirar y tranferir, el retira y consigna a la otra cuenta, pero el booleano devuelto no es de acuerdo, Por ejemplo, le di un saldo de 400 y que tranfiera esos 400, los tranfiere pero me dice que no realizo tranferencia:

package bancos; public class Cuenta {

double saldo;
int agencia;
int numero; 
String titular;

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

}

package bancos;

public class PruebaMetodo {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Cuenta cuenta= new Cuenta();
    cuenta.depositar(200);

    cuenta.retirar(100);
    //System.out.println(cuenta.saldo);
    Cuenta cuentadejimena=new Cuenta();
    cuentadejimena.depositar(400.0);
    System.out.println(cuentadejimena.saldo);
    cuentadejimena.transferir(400, cuenta);
    System.out.println(cuentadejimena.transferir(400, cuenta));
    System.out.println(cuentadejimena.saldo);

    boolean transferir=cuentadejimena.transferir(400, cuenta);
    if(transferir) {
        System.out.println("pudiste transferir");
    }else {
        System.out.println("No puedes tranferir");
    }

    System.out.println(cuentadejimena.saldo);
    System.out.println(cuenta.saldo);
}

}

2 respuestas

Hola, eso es debido a que la cuentadejimena está haciendo varias transferencias, y por ende no tiene más dinero que transferir.

Trata depositando más dinero en está linea de código de tu clase PruebaMetodos: cuentadejimena.depositar(400.0);

Saludos.

Aquí te dejo el código:

public class PruebaMetodo {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Cuenta cuenta = new Cuenta();
        cuenta.depositar(200);
        cuenta.retirar(100);
        System.out.println(cuenta.saldo);

        Cuenta cuentadejimena = new Cuenta();
        cuentadejimena.depositar(1500.0);
        System.out.println(cuentadejimena.saldo);
        cuentadejimena.transferir(400, cuenta);
        System.out.println("Transferencia a cuenta " + cuentadejimena.transferir(400, cuenta));
        System.out.println(cuentadejimena.saldo);

        boolean transferir = cuentadejimena.transferir(400, cuenta);
        if (transferir) {
            System.out.println("pudiste transferir");
        } else {
            System.out.println("No puedes tranferir");
        }

        System.out.println(cuentadejimena.saldo);
        System.out.println(cuenta.saldo);
    }
}