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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!