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

Dúvida sobre os 20 centavos

Como alguns outros, também tive dificuldade de transferir os 20 centavos. Daí percebi que o método "transfere" estava diferente do método do Nico. O meu estava assim:

public boolean transfere(double valor, Conta destino) {

if (this.saldo >= valor) {
    this.saldo -= valor;
    destino.deposita(valor);
    return true;
} else {
    return false;
}

E só funcionou quando deixei igual ao do Nico, assim:

public boolean transfere(double valor, Conta destino) {

if(this.saca(valor)) {
    destino.deposita(valor);
    return true;
} else {
    return false;
}

Minha dúvida é: por que o método mudou? No primeiro, até onde eu entendo, ele testa se o valor do saque é menor do que o valor do saldo pra, aí sim, diminuir o valor do saque do saldo. Depois de retirar o valor ele transfere para o destino. Dessa forma a transferência não descontava os 20 centavos. No segundo método não temos a verificação de saque <= saldo e funciona o desconto dos 20 centavos.

Alguém poderia me explicar por que o segundo método desconta os 20 centavos e por que tiramos a verificação?

Obrigada!

2 respostas
solução!

Olá, Beatriz!!

Ele retirou essa verificação porque ela fazia mais sentido de estar dentro do metodo sacar, sendo que o caminho é ele chama o transferece e nele se chama o sacar, dentro do metodo sacar é verificado o saldo.

Conseguir te explicar?

Arrasou

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software