2
respostas

O Metodo não está executando a instrução

O método depositar(valor) não está executando a instrução, e o ultimo console.log(conta2) está me retornando um not a number. Como posso corrigir essa falha?

// index.js //
import {Cliente} from "./Cliente.js" 
import { ContaCorrente } from "./ContaCorrente.js"

// NESTE CÓDIGO CONTEMOS APENAS EXECUÇÃO DO SISTEMA//

const cliente1 = new Cliente();

    cliente1.nome = "Victor";
    cliente1.cpf ="11122233300";

const cliente2 = new Cliente();
    cliente2.nome = "Rafaela";
    cliente2.cpf = "88855522231";

const contaCorrenteVictor = new ContaCorrente();

    contaCorrenteVictor._saldo = 0;
    contaCorrenteVictor.agencia = 1001;
    contaCorrenteVictor.cliente = cliente1;
    contaCorrenteVictor.depositar(500);

   const conta2 = new ContaCorrente();
   conta2.cliente = cliente2;
   conta2.agencia = 102;

   console.log(contaCorrenteVictor);
   console.log(conta2);

   contaCorrenteVictor.transferir(200, conta2); // O metodo depositar não está inserindo os 500 na conta, o ultimo console.log(conta2) retorna um NaN
   console.log(conta2);
export class Cliente {
        nome;
        cpf;
    }
// Cliente.js //
export class ContaCorrente {
            agencia;
            cliente;

            _saldo = 0;

            sacar(valor) {
                if(this._saldo >= valor) {
                    this._saldo -= valor;
                    return valor;
                }
                return
            }

            depositar(valor) {
                if(valor > 0) {
                    return
                }
                this._saldo = valor;
            }

            transferir(valor, conta) {
                const valorSacado = this.sacar(valor);
                conta.depositar(valorSacado);
            }
        }
        // ContaCorrente.js //
2 respostas

Boa noite! Nesse trecho:

depositar(valor) {
                *if(valor > 0) {
                    return
                }*
                **this._saldo = valor**;
            }

sua função está dando return (o que encerra a função imediatamente sem retornar nada), quando o valor é maior que 0 em vez de realizar o depósito. Além disso o this._saldo=valor deve somar o valor desta forma: this._saldo+=valor e não receber o valor como foi declarado no seu código, senão o saldo do cliente muda para o valor depositado indevidamente. Tente desta forma:

depositar(valor){

    if(valor < 0) return; //evita depositar valores negativos.

    this._saldo += valor; //soma o valor ao saldo da conta.

}

Valeu muito obrigado !!!!