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)
2
respuestas

duda con valores diferentes

Hola.

Les pregunto teniendo este codigo en la clase Cuenta:

package proyectoByteBank;

import java.security.PublicKey;

//entidad cuenta: class Cuenta { double saldo; int agencia; int numero; String titular; char prueba;// si es un tipo char, new no lo iniciliza

// metodo para depositar no retorna valor

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

// utilizar un metodo que retorne un valor booleano
public boolean retirar(double valor) {

    if (this.saldo >= valor) {
        this.saldo = this.saldo - valor;
        System.out.println("La operacion fue exitosa");
        return true;

    } else {
        return false;
    }

}

public boolean transferir(double valor, Cuenta cuenta) {

    if (this.saldo >= valor) {
        this.saldo = this.saldo - valor;
        // cuenta.saldo = cuenta.saldo + valor;
        cuenta.depositar(valor);
        return true;
    } else {
        return false;
    }
}

}

y este codigo en Pruebametodos:

package proyectoByteBank;

public class Pruebametodos {

public static void main(String[] args) {
    Cuenta miCuenta = new Cuenta();
    miCuenta.saldo =300;
    System.out.println(miCuenta.saldo);
    miCuenta.depositar(1000);
    System.out.println(miCuenta.saldo);
    miCuenta.retirar(50);
    System.out.println("Mi nuevo saldo despues del retiro es " + miCuenta.saldo);

    miCuenta.retirar(100);
    System.out.println("El saldo despues del retiro es " + miCuenta.saldo);
    
// crear otra cuenta
    
    Cuenta cuentaDeJimena = new Cuenta();
    
    //invocar el metodo depositar
    cuentaDeJimena.depositar(1000);
    
    //invocar el metodo transferir
    cuentaDeJimena.transferir (1000,miCuenta);
    
    
    System.out.println("el saldo de Jimena es " + cuentaDeJimena.saldo);
    System.out.println("El saldo de mi cuenta es " + miCuenta.saldo );
    
boolean puedeTrasnferir = cuentaDeJimena.transferir(200, miCuenta);
    if (puedeTrasnferir) {
        System.out.println("La operacion de transferencia fué fue exitosa");
    
    }else {
        System.out.println("La operacion de transferencia no se pudo realizar");
        
    }
}

}

¿Por que cuando le transfiero 1000 a miCuenta me sale el mensaje que No fue posible?

2 respuestas

Disculpe ya corregi el valor a 1000 en esta linea

boolean puedeTrasnferir = cuentaDeJimena.transferir(1000, miCuenta);

pero aun asi sigue sin funcionar?

solución!

¡Hola Santiago!

Al revisar el código que proporcionaste, veo que en la línea 45 de la clase Cuenta, el método transferir está restando el valor de la variable "valor" del saldo de la cuenta actual (this.saldo) antes de verificar si hay suficiente saldo para realizar la transferencia. Esto significa que, si el saldo actual de la cuenta es menor que el valor que se desea transferir, el método devolverá "false" y no se realizará la transferencia.

Para solucionar este problema, debes mover la línea 45 después de la línea 47, de modo que primero se verifique si hay suficiente saldo para realizar la transferencia y, si es así, se reste el valor de la cuenta actual y se agregue el valor a la cuenta de destino.

Aquí te muestro cómo debería ser el método transferir corregido:

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

Espero que esto te ayude a resolver tu problema. ¡Buenos estudios!

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