Por que as propriedades são privadas na Corrente e na Poupança não? E pq uma tem saldo = 0 e a poupança saldoInicial no construtor?
Por que as propriedades são privadas na Corrente e na Poupança não? E pq uma tem saldo = 0 e a poupança saldoInicial no construtor?
Olá, Igor, tudo bem?
Por que as propriedades são privadas na Corrente e na Poupança não?
Vamos analisar o código da ContaPoupanca:
export class ContaPoupanca {
constructor(saldoInicial, cliente, agencia) {
this._saldo = saldoInicial;
this._cliente = cliente;
this._agencia = agencia;
}
}
As propriedades dessa classe na verdade estão sim privadas (pela convenção do underline _). Quando essa classe é instanciada, o construtor é executado, recebendo os três parâmetros (saldoInicial, cliente e agencia) e os atribuindo para as três propriedades privadas da classe: _saldo, _cliente e _agencia.
E pq uma tem saldo = 0 e a poupança saldoInicial no construtor?
Bem, o saldo da classe ContaCorrente é inicializado por padrão como 0, como foi visto no curso anterior. Vamos analisar como está o construtor agora:
constructor(agencia, cliente) {
this.agencia = agencia;
this.cliente = cliente;
this._saldo = 0;
ContaCorrente.numeroDeContas += 1;
}
Isso quer dizer que se formos fazer uma instância de ContaCorrente, passaremos apenas a agencia e o cliente como parâmetros, e o saldo será iniciado como 0 automaticamente no construtor. Caso queiramos depositar ou sacar na conta, podemos utilizar os métodos que já foram criados.
Já na classe ContaPoupanca, temos a opção de abrir uma conta poupança já com saldo, e por isso ela também recebe esse parâmetro no construtor, como o instrutor disse.
Espero ter ajudado! Se tiver mais dúvidas ou dificuldades, ficaremos felizes em te responder. Abraços e bons estudos!