levando em consideração a aula anterior do professor estou correto em colocar: (levando em consideração que é preciso uma segunda conta para fazer essa instanciação)
levando em consideração a aula anterior do professor estou correto em colocar: (levando em consideração que é preciso uma segunda conta para fazer essa instanciaçã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.
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);
}
}