2
respostas

metodo transfere indefinido para o tipo conta ! alguem poderia auxiliar?

Pessoal estou com este erro na linha 15 do TestaMetodo. Help Pleaseee

public class Conta { 
    double saldo;
    int agencia;
    int numero;
    String titular;

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

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

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

public class TestaMetodo { public static void main (String[] args) { Conta contaDoPaulo = new Conta(); contaDoPaulo.saldo = 100; contaDoPaulo.deposita(50); System.out.println(contaDoPaulo.saldo);

    boolean conseguiuRetirar = contaDoPaulo.saca(20);
    System.out.println(contaDoPaulo.saldo);
    System.out.println(conseguiuRetirar);

    Conta contaDaMarcela = new Conta();
    contaDaMarcela.deposita(1000);

    if (contaDaMarcela.transfere(300, contaDoPaulo)) {
        System.out.println("transferencia com sucesso");
    } else {
        System.out.println("faltou dinheiro");
    }
    System.out.println(contaDaMarcela.saldo);
    System.out.println(contaDoPaulo.saldo);
}

}

2 respostas

Bom dia Erick, qual classe está dando o erro e cola pra mim a linha do erro por favor.

O erro está no método transfere

  public boolean transfere(double valor, Conta destino) {
        if(this.saldo >= valor) {
            this.saldo -= valor;
            destino.saldo += valor;
            destino.deposita(valor);
            return true;

Tu tás somando o valor da tranferência duas vezes uma na linha

destino.saldo+=valor;

e outra na linha

destino.deposita(valor);

por isso está dando 730, pois você está fazendo 130+300+300=730