Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

meu método "transfere" está dando erro e não consigo compilar

meu método "transfere" está dando erro e não consigo compilar, já fiz tudo que se pede mas não deu certo.

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

        if(contaDaMarcela.transfere(300, contaDoVictor)) {
        System.out.println(contaDaMarcela.saldo);
        System.out.println("transferencia com sucesso");
    }else{
        System.out.println("falta dinheiro");
    }
       System.out.println(contaDaMarcela.saldo);
       System.out.println(contaDoVictor); 
    }
}
public boolean transfere(double valor, Conta destino) {
             if(this.saldo >= valor) { 
             this.saldo -= valor; 
             destino.deposita(valor);
             return true;
        } 
            return false;
        }
    }
}
6 respostas

Boa noite, Victor! Como vai?

Me parece que vc acabou esquecendo um else após o if. Experimente fazer assim:

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

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

basicamente essas linhas estão dando erro

public boolean transfere(double valor, Conta destino) {


 if(contaDaMarcela.transfere(300, contaDoVictor)) {

Opa, Victor!

Qual erro que está aparecendo? Vc poderia colar a mensagem aqui, por favor? Assim poderei te ajudar de forma mais efetiva.

Além disso, seria bom também que colasse aqui a classe inteira onde esse último trecho de código que vc postou está inserido.

erro: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method transfere(int, conta) is undefined for the type conta

at TestaMetodo.main(TestaMetodo.java:18)

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.deposita(valor);
                  return true;
             } else { 
                  return false;
             }
        }

    }
}

public class TestaMetodo {

static public void main (String[] args) {
    conta contaDoVictor = new conta();
    contaDoVictor.saldo = 100;
    contaDoVictor.deposita(50);
    System.out.println(contaDoVictor.saldo);

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


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

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

}

Olá Victor, tudo bem com você?

Acredito que sejam alguns pequenos erros de digitação que você tem em seu código:

  • Por padrão vamos deixar nossas classes com a letra maiúscula, então vamos trocar:

class conta {

Por

class Conta {

Dessa maneira vamos mudar também em nosso TestaMetodo:

Conta contaDoVictor = new Conta();
Conta contaDaMarcela = new Conta();

Acredito que seu problema aconteceu porque o método transfere espera uma Conta entretanto sua classe se chamava conta e por isso dava alguns problemas de compilação!

Abraços e Bons Estudos!

solução!

achei o erro estava faltando fecha chaves nessa linha

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