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

[Dúvida] Private field

Pessoal, fiquei na dúvida sobre os campos privados. Fiz um outro curso, atualizado em Dezembro de 2022 e nesse curso foi passado como declarar propriedades privadas com #. E esse curso, atualizado em Fevereiro de 2023, diz que o modo de declarar campos privados com # ainda não foi implementada. Mas, buscando no MDN web doc, encontrei uma pagina, modificada em Abril de 2022 com uma explicação sobre como declarar os campos privados com #. Afinal, campos privados foram ou não foram implementados?

De qualquer maneira, fiz uma parte do código usando os campos privados. Segue o código:

class Cliente {
    #nome;
    #cpf;

    constructor(nome, cpf) {
        this.#nome = nome;
        this.#cpf = cpf;
    }

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

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

    set nome(nomeCliente) {
        this.#nome = nomeCliente;
    }

    set cpf(cpfCliente) {
        this.#cpf = cpfCliente;
    }
}

class ContaCorrente {
    #titular;
    #agencia;
    #saldo;

    constructor(titular, agencia, saldo) {
        this.#titular = titular;
        this.#agencia = agencia;
        this.#saldo = saldo;
    }

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

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

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

    set titular(nomeTitular) {
        this.#titular = nomeTitular;
    }

    set agencia(agenciaCliente) {
        this.#agencia = agenciaCliente;
    }

    set saldo(saldoCliente) {
        this.#saldo = saldoCliente;
    }

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

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

    exibiSaldo(){
        return `${this.titular}, o seu saldo é de ${this.saldo}`
    }
}

const cliente1 = new Cliente();
cliente1.nomeCliente = 'Ricardo';
cliente1.cpfCliente = 1928374623;

const cliente2 = new Cliente();
cliente2.nomeCliente = 'Alice';
cliente2.cpfCliente = 5647382920;

const contaCorrenteRicardo = new ContaCorrente('Ricardo', '1001', 0);

contaCorrenteRicardo.depositar(100);
contaCorrenteRicardo.depositar(200);
console.log(contaCorrenteRicardo.exibiSaldo());
contaCorrenteRicardo.sacar(50);
console.log(contaCorrenteRicardo.exibiSaldo());

console.log(cliente1);
console.log(cliente2);
1 resposta
solução!

Oi, Fernando

Sim! Fonte: Private class features

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