Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Contador de contas abetas não funciona

Ao chamar a contagem das contas é apresentado como undefined:

index.js:

/*
    Autor: Walace Vilas-Boas de Jesus
*/
import {Cliente} from "./Cliente.js";
import {ContaCorrente} from "./ContaCorrente.js";

const cliente1 = new Cliente("Walace", "11122233390");
const contaWalace = new ContaCorrente("1001", cliente1);
const cliente2 = new Cliente("Maria", "11122233350");
const contaMaria = new ContaCorrente("1002", cliente2);

contaWalace.depositar(500);
contaWalace.transferir(200, contaMaria);

console.log("\n");

console.log("Agencia: ", contaWalace.agencia);
console.log("Nome: ", contaWalace.cliente.nome);
console.log("CPF: ", contaWalace.cliente.cpf);
console.log("Saldo: ", contaWalace.saldo);

console.log("\n");

console.log("Agencia: ", contaMaria.agencia);
console.log("Nome: ", contaMaria.cliente.nome);
console.log("CPF: ", contaMaria.cliente.cpf);
console.log("Saldo: ", contaMaria.saldo);

console.log("\n");

console.log("Contas abertas: ", ContaCorrente.numeDeContas);

ContaCorrente.js:

/*
    Autor: Walace Vilas-Boas de Jesus
*/
import { Cliente } from "./Cliente.js";

export class ContaCorrente{
    // # torna o atributo privado
    #saldo = 0;
    agencia;
    #cliente;
    static numerodeContas = 0;

    set cliente(novoValor){
        //Impede recer um valor que não seja do tipo Cliente
        if(novoValor instanceof Cliente){
            this.#cliente = novoValor;
        }
    }

    get cliente(){
        return this.#cliente;
    }

    get saldo(){
        return this.#saldo;
    }

    constructor (agencia, cliente){
        this.agencia = agencia;
        this.cliente = cliente;
        ContaCorrente.numerodeContas += 1;
    }

    sacar(valor) {
        if(valor > this.#saldo) return;

        this.#saldo -= valor;
        return valor;
    };

    depositar(valor) {
        //Tecnica de early return, se a condição for diferente do que eu quero já sai do metod, serve pra deixar o código numa ninha de identação melhor:
        if(valor <= 0) return;

        this.#saldo += valor;
    };

    transferir(valor, contaDestino){
        const valorSacado = this.sacar(valor);
        contaDestino.depositar(valorSacado);
    }
}
1 resposta
solução!

Oi Walace!

Na hora de printar o número de contas, você apenas cometeu um pequeno erro de digitação. Está assim:

console.log("Contas abertas: ", ContaCorrente.numeDeContas);

Mas deveria ser:

console.log("Contas abertas: ", ContaCorrente.numerodeContas );

Espero ter ajudado! Qualquer outra coisa pode postar aqui!