1
resposta

Duvida nas questões

"Para adicionar lógica ao inicializar um atributo.

Exato! Ao encapsular um atributo, somos capazes de adicionar trechos de código antes ou após inicialização do atributo."

Eu sinto que não entendi essa afirmação, teria como me explicar de outra forma?Como assim adicionar logica ao inicializar? e porque somos capazes de adicionar trechos antes e depois dessa inicialização mendiante o encapsulamento?

1 resposta

Olá Paloma, tudo bem com você?

Essa afirmação está se referindo ao Setter, já que é através dele manipulamos os atributos de uma classe (embora seja valido para qualquer outro método que manipule os atributos da classe).

Basicamente, podemos adicionar lógica/condições em cima de qualquer alteração que seja feita nos atributos de uma classe através de métodos como os Setters. Como exemplo, podemos pensar na validação de um email para garantir que ele está no formato correto antes de atribuí-lo ao objeto. Isso seria a lógica ao inicializar o atributo, já que antes de "setarmos" o email que desejamos, dentro do atributo havia apenas um valor padrão zerado ou nulo.

O mesmo vale para o "após inicialização do atributo", já que em ambos os casos podemos adicionar lógica antes de realizar quaisquer modificações nos atributos. E esse é justamente a definição de encapsulamento: estamos não apenas restringindo a manipulação direta dos atributos da classe, permitindo apenas a manipulação através de métodos da própria classe, como também estamos reunindo dentro desses métodos, toda a lógica necessária para manter os atributos da classe coerentes seguindo as nossas regras.

Não sei se consegui ser claro na explicação, mas me avisa aí se algo não fizer sentido! ;)

Forte abraço e bons estudos!!