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!