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

instanceOf

levando em consideração a aula anterior do professor estou correto em colocar: Insira aqui a descrição dessa imagem para ajudar na acessibilidade(levando em consideração que é preciso uma segunda conta para fazer essa instanciação)

2 respostas
solução!

Oi, Denilson.

Eu fiz alguns testes e funciona com o instanceof. Só que quando o metodo Sacar é chamada, ela subtrai o valor da conta do cliente A, e esse valor vai para lugar algum, é perdido. Teria que chamar o método de depositar do cliente A.

Sou apenas um estudante, mas espero ter ajudado.

Imagem do codigo abaixo com sintaxe highlight

transferir(valor, conta)
    {

        const valorSacado = this.sacar(valor);

        // Se a conta passada não foi instanciada/criada devolver o valor para o cliente A;
        if( conta instanceof ContaCorrente ) {
            conta.depositar(valorSacado);
        } else {
            this.depositar(valorSacado);
        }


    }

Essa validação do parâmetro conta como um objeto da Classe Conta geralmente é feita pelo constructor (usando o assessor set conta). Mas neste caso, acredito que pode-se tornar o código mais enxuto assim:

sacar (valor) {
        if ( this._saldo >= valor ) {
            this._saldo -= valor;
            return valor;
        }
        // Caso o saldo seja insuficiente para o saque, informa que não houve saque.
        return 0;
}

transferir (valor, conta) {
        // Só vai sacar se for uma conta válida
        if (conta instanceof ContaCorrente) {
            const valorSacado = this.sacar(valor);
            // Se o saldo era menor que o saque, vai depositar 0. Se conseguiu sacar, deposita o valorSacado (diferente de 0).
            conta.depositar(valorSacado);
        }        
}    

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