1
resposta

Problema com ContaCorrente.js

Eu estou com algumas duvidas sobre a questão das classes, e com um problema no meu codigo.

Primeiro: eu acho que não entendi essa atribuição de classes que ele fez. Ao falar

const contaCorrenteRicardo = new ContaCorrente ();
contaCorrenteRicardo.cliente = cliente1;

Isso significa , que ele esta associando duas classes correto? A partir daquele momento eu posso atribuir as caracteristicas da classe ContaCorrente a classe Cliente, pois posso chamar cliente1. Eu acho que entendi que é para nao mexer ns definições das proprias classes certo? Porém, quando ele vai fazer com que o cliente1 transfira para a cliente2 ele usa o codigo:

contaCorrenteRicardo.transferir (200, cliente2);

É necessario voltar a usar esse código contaCorrenteRicardo mesmo? Ou foi só um descuidado dele?

E estou com um problema no codigo da classe ContaCorrente na função transferir, o debug fala que cliente.depositar (de dentro da função transferir) não é uma função. Segue meu codigo de ContaCorrente.js:

export class ContaCorrente {
    agencia;
    cliente;

    _saldo=0;

    depositar (valor) {
        if (valor <0) return;
        this._saldo += valor;
    }
    sacar (valor) {
        if (this._saldo >= valor){
            this._saldo-=valor;
            return valor;
        }
    }
    transferir (valor, cliente) {
        const valorSacado= this.sacar (valor);
        cliente.depositar (valorSacado);
    }
}

Grato.

1 resposta

Fala Rafael, tudo bem? Vamos lá:

Isso significa , que ele esta associando duas classes correto?

Significa que para a variável cliente do objeto de uma classe ContaCorrente está sendo associada outro objeto.

É necessario voltar a usar esse código contaCorrenteRicardo mesmo? Ou foi só um descuidado dele?

Sim, é necessário, isso porque o objeto que contém a função transferir é o contaCorrenteRicardo.

E estou com um problema no codigo da classe ContaCorrente na função transferir, o debug fala que cliente.depositar (de dentro da função transferir) não é uma função. Segue meu codigo de ContaCorrente.js:

Como você está criando o cliente? Tente adicionar um console.log no inicio da sua função transferir e verifique o que será impresso no console do navegador.

Pode ser que seja impresso null, undefined ou um objeto que não tem a função depositar.

Espero ter ajudado.

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