Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

this.cliente ou this._cliente em class Cliente?

Oi, gente!

Fiquei um pouco confusa na parte em que é criado um construtor para a classe da Conta Corrente. Como o cliente é definido na classe como um atributo privado, ao construir o método constructor(), não seria ideal colocar: this._cliente = cliente ao invés de this.cliente = cliente?

3 respostas
solução!

Fala Raphaela, tudo bem? Espero que sim!

Como pode ver na imagem abaixo, nós ja definimos o atributo privado _cliente antes mesmo do construtor:

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

E no construtor, estamos fazendo uma atribuição (set) ao atributo cliente, e logo acima do construtor, temos o método set cliente que irá "intervir" nessa atribuição ao atributo cliente, adicionando o valor para o atributo privado _cliente:

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

Dessa forma, quando estivermos atribuindo um valor ao atributo cliente, na verdade estaremos atribuindo esse valor ao atributo _cliente.

Espero ter ajudado, bons estudos :D

Mateus, eu tenho a classe ContaCorrente dessa mesma forma que você, e o resultado que obtenho no prompt é o seguinte quando tento imprimir as contas:

Cliente { nome: 'Ricardo', _cpf: 11111111111 }
Cliente { nome: 'Alice', _cpf: 22222222222 }
ContaCorrente {
  agencia: Cliente { nome: 'Ricardo', _cpf: 11111111111 },
  _cliente: undefined,
  _saldo: 0
}
ContaCorrente {
  agencia: Cliente { nome: 'Alice', _cpf: 22222222222 },
  _cliente: undefined,
  _saldo: 0
}

Ou seja: parece que o código está colocando uma instância da classe Cliente dentro do parâmetro agência da classe ContaCorrente, deixando dessa forma o parâmetro _cliente como undefined.

Edit: e na próxima aula eu acabei de ver que é só porque o construtor está com os parâmetros invertidos.

Fala Ernani, tudo bem? Espero que sim!

Para evitar confusões em outros alunos que estejam procurando por uma resposta especifica e por esse tópico ja ter sido marcado como solução, aconselho você abrir um novo tópico aqui no fórum! Assim consigo te ajudar da melhor forma, ta bom?

Fico no aguardo!