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

O saldo aparece no console.log(contaCorrenteRricardo);

Mesmo o saldo sendo privado ele ainda exibe na conta corrente.

class Cliente{
    nome;
    cpf;  
};

class ContaCorrente{
    agencia;
    #saldo = 0;

    sacar(valor){
        if(this.#saldo >= valor){
            this.#saldo -= valor;
        };
    };

    depositar(valor){
        if(valor > 0){
            this.#saldo += valor;
            console.log(this.#saldo)
        };
    };
};

const cliente1 =  new Cliente();
cliente1.cpf = 11122233309;
cliente1.nome = "Ricardo";

const cliente2 =  new Cliente();
cliente2.nome = "Alicia";
cliente2.cpf = 88822233309;

const contaCorrenteRricardo = new ContaCorrente();
contaCorrenteRricardo.agencia = 1001;



contaCorrenteRricardo.depositar(100);
contaCorrenteRricardo.sacar(50);

console.log(contaCorrenteRricardo);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!

Testei seu código aqui e não tem nenhuma anormalidade, só o nome do objeto "contaCorrenteRricardo" que não é nenhum pouco prático

Imagem do Teste

Boa tarde! A funcionalidade de privar um código (com -) é apenas um método desenvolvido e padronizado pela comunidade para dizer para outros programadores para não alterar o valor fora de uma CLASSE (ou FUNÇÃO, dependendo do caso), não obtendo uma funcionalidade de REALMENTE privar o código.

Ou seja, mesmo você privando o saldo da conta corrente do Ricardo, será possível a exibição do mesmo já que ele não está REALMENTE privado.

Perfeita afirmação @Yuri, existe uma convenção para desenvolver essa dinâmica de tipagem para o Js, mas ainda não andou. Creio que essa situação pode ter acontecido com o desenvolvimento do TypeScript que nos dá essa possibilidade de fazer tudo isso e com a compilação do TypeScript para JavaScript as implementações são feitas para que o Js fique com cara de linguagem fortemente tipada.