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

o get e set funcionam assim?

Gostaria de saber se eu entendi certo o funcionamento do get e do set dado no vídeo.

pelo fato do atributo "level" ser privado, eu não conseguiria acessar ele de forma direta, exemplo:

console.log(magoFulano.level)

o código acima daria undefined, aí onde entram o get e set, e com eles, esse mesmo código iria funcionar fazendo com que o código acima não fosse diretamente no atributo, e sim no get que retorna o valor do atributo. O que não ficou tão nítido pra mim foi como funciona o set, pelo vídeo e eu entendi que ele funciona da seguinte forma:

Em qualquer momento do código que o usuário tentar alterar o valor de um atributo privado, automaticamente o set entra em ação, rodando o código construído nele. Exemplo abaixo, considerando o get e set implementados conforme a aula.

console.log(magoAntonio.level) // 1
magoAntonio.level = 10
console.log(magoAntonio.level) // 10
2 respostas
solução!

Oi Antônio, tudo bem?

Sim, você entendeu corretamente o funcionamento do get e do set. Quando um atributo é privado, não é possível acessá-lo diretamente fora da classe, mas com o get e set é possível manipulá-lo de forma controlada.

O get é utilizado para retornar o valor do atributo privado, enquanto o set é utilizado para definir um novo valor para esse atributo. Quando você utiliza o set para alterar o valor de um atributo privado, o código que está dentro do set é executado, permitindo que você faça validações ou outras operações antes de efetivamente alterar o valor do atributo.

No exemplo que você citou, o set é acionado automaticamente quando você tenta alterar o valor do atributo "level" do objeto "magoAntonio". O código que está dentro do set é executado e, em seguida, o valor do atributo é alterado para o valor que você definiu.

Um abraço e bons estudos.

obrigado Lorena!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software