Olá, Jairo!
Entendo sua dúvida em relação à alternativa "Para adicionar lógica ao inicializar um atributo". De fato, no Kotlin, os atributos devem ser inicializados com um valor por padrão. No entanto, o encapsulamento não se trata apenas da inicialização dos atributos, mas também de controlar o acesso a eles.
O encapsulamento é uma técnica importante em programação orientada a objetos, pois nos permite definir quem pode acessar e modificar os atributos de uma classe. Dessa forma, podemos adicionar lógica ao modificar o valor de um atributo, como você mencionou.
Imagine que você tenha uma classe Pessoa
com um atributo idade
. Utilizando o encapsulamento, você pode definir um setter
para o atributo idade
que verifica se o valor passado é válido, como por exemplo, se é maior que zero. Dessa forma, você garante que a idade sempre será um valor válido e evita que valores inválidos sejam atribuídos diretamente ao atributo.
Além disso, o encapsulamento também nos permite impedir a manipulação direta do atributo em qualquer ponto do código, como mencionado na alternativa C. Isso é importante para manter a integridade dos dados e evitar que valores incorretos sejam atribuídos aos atributos.
Portanto, a alternativa "Para adicionar lógica ao modificar o valor de um atributo" é uma forma mais abrangente de entender o uso do encapsulamento, englobando tanto a inicialização quanto a modificação dos atributos.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.
Espero ter ajudado e bons estudos!