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

Método Transferir JS

Bom dia tudo bem? Fiz a construção do método como foi passado em aula, mais um fato curioso aconteceu. O método funciona perfeitamente, porém repare o retorno ao executar:

Escopo do Index.js

const conta01 = new ContaCorrente();
conta01.cliente = cliente01;
conta01.agencia = 1501;
cliente01.nome = "Humberto";
cliente01.cpf = 12345678;

conta01.depositar(100);





const conta02 = new ContaCorrente();
conta02.cliente = cliente02;
conta02.agencia = 1701;
cliente02.nome = "Iasmim";
cliente02.cpf = 123589798;

conta02.depositar(250);




conta01.transferir(100, conta02);


Escopo Método Transferir:

transferir(valor, conta){
          const valorSacado = this.sacar(valor);
          conta.depositar(valorSacado);

      }     



Retorno do terminal: ContaCorrente {
  agencia: 1501,
  cliente: Cliente { nome: 'Humberto', cpf: 12345678 },
  saldo: 200
}
ContaCorrente {
  agencia: 1701,
  cliente: Cliente { nome: 'Iasmim', cpf: 123589798 },
  saldo: 250

Achei bacana que funcionou, mais por quê não debita do saldo de um passa para o outro sendo que o código esta um espelho do da aula?

5 respostas

Fala ai Humberto, tudo bem? Falando assim sem ver os códigos é bem complicado, provavelmente deve ser algum pequeno detalhe que esteja diferente.

Consegue compartilhar o projeto completo? Assim eu consigo simular o problema por aqui e analisá-lo com mais calma.

Pode compartilhar através do Github ou Google Drive (zipado).

Fico no aguardo.

Boa noite, Segue o link do meu git: https://github.com/humbertorochaaa/JS_pratica

solução!

Fala Humberto, dei uma olhada no projeto e encontrei o problema, vamos ver a função transferir da classe ContaCorrente:

transferir(valor, conta){
    const valorSacado = this.sacar(valor);
    conta.depositar(valorSacado);
}

Repare que ela vai sacar o valor da conta atual e com esse valor sacado vai depositar na conta alvo, agora, vamos ver a função sacar da sua ContaCorrente:

sacar(Valor){
    if (this.saldo >= Valor) {
        this.saldo += Valor;       
    }
}

Repare que a função sacar está adicionando o valor da transferência na conta atual e não retorna nenhum valor para ser usado como depósito na conta alvo, com as correções ela ficaria assim:

sacar(Valor){
    if (this.saldo >= Valor) {
        this.saldo -= Valor;            
        return Valor
    }
    return 0
}

Agora caso tenha saldo ela vai retirar o valor da conta atual e retornar o valor retirado para que possa ser depositado na conta alvo, porém, caso não tenha saldo ela não vai fazer nada e irá retornar 0.

Espero ter ajudado.

Obrigado professor!

Magina Humberto, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.