Ajuda com exercício da apostila FJ-11 (TestaConta)

2 respostas
java
W

Bom dia pessoal, eu estou iniciando os estudos em java através da apostila FJ-11 da Caelum e estou fazendo o exercício de criação de conta bancária. Segue o código.

class Conta {
int numero;
Cliente titular = new Cliente(); // quando chamarem new Conta, haverá um new Cliente para ele.
double saldo;
String agencia;
String dataDeAbertura;

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

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

boolean transfere(Conta destino, double valor) {
boolean retirou = this.saca(valor);
    if (retirou == false) {
    // não deu pra sacar!
    return false;
    } else {
    destino.deposita(valor);
    return true;
    }
}

void calculaRendimento(){
    this.saldo = this.saldo*0.1;
}

}

class TestaConta {
public static void main(String[] args) {
    Conta c1 = new Conta();

    c1.titular = "Hugo";
    c1.numero = 123;
    c1.agencia = "45678-9";
    c1.saldo = 50.0;
    c1.dataDeAbertura = "04/06/2015";

    c1.deposita(100.0);
    System.out.println("saldo atual: " + c1.saldo);
    System.out.println("rendimento mensal: " + c1.calculaRendimento());
}

}

Eu estou escrevendo esse código no VS Code e no último System.out.println ele me retorna um erro dizendo assim “The operator + undefined for the argument type(s) String, void.”. Pelo que eu entendi eu não posso concatenar minha String com alguma coisa que retorna void. Como resolvo esse me problema?

2 Respostas

M

Bom dia, como o método calculaRendimento altera o valor do saldo, então vc pode exibir o valor do saldo mesmo

System.out.println("saldo atual: " + c1.saldo);
c1.calculaRendimento();
System.out.println("rendimento mensal: " + c1.saldo);//Aqui você tem o seu saldo atualizado
W

Oi. Entendi, obrigado pela ajuda, mas agora relendo a apostila eu cometi um erro de atenção e o método calculaRendimento() é void, por isso que está dando erro, o correto era ele está como double por exemplo.

Muito obrigado

Criado 27 de julho de 2018
Ultima resposta 27 de jul. de 2018
Respostas 2
Participantes 2