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);