O encapsulamento é um dos pilares da POO e representa uma barreira lógica entre o estado interno de um objeto e o ambiente externo. Ao adotar métodos acessores, como get e set, o programador é capaz de controlar o acesso aos dados e proteger a integridade da aplicação. Em uma aplicação orientada a objetos desenvolvida em Java, foi necessário restringir o acesso direto aos atributos de uma classe para garantir segurança e controle dos dados. Diante desse cenário, assinale a alternativa que justifica corretamente a adoção de métodos getter e setter em uma classe Java:
Questão
O encapsulamento é um dos pilares da POO e representa uma barreira lógica entre o estado interno de um objeto e o ambiente externo. Ao adotar métodos acessores, como get e set, o programador é capaz de controlar o acesso aos dados e proteger a integridade da aplicação.
Em uma aplicação orientada a objetos desenvolvida em Java, foi necessário restringir o acesso direto aos atributos de uma classe para garantir segurança e controle dos dados. Diante desse cenário, assinale a alternativa que justifica corretamente a adoção de métodos getter e setter em uma classe Java:
Alternativas
a) Getters e setters tornam o código mais extenso e, por isso, são usados apenas como boa prática estética.
b) Esses métodos permitem acesso direto aos atributos públicos, substituindo a necessidade de construtores.
c) O uso de métodos acessores compromete a modularidade, mas é exigido pelo compilador em tempo de execução.
d) Esses métodos permitem que atributos privados sejam lidos ou modificados de maneira controlada, aplicando regras de validação, se necessário.
e) Getters e setters são utilizados apenas quando os atributos precisam ser herdados por subclasses.
Explicação
Em POO, encapsulamento significa esconder o estado interno do objeto (normalmente com atributos private) e expor apenas operações controladas para interação.
Ao usar getter e setter em Java, a classe não permite acesso direto aos atributos, mas oferece um ponto de controle para:
- Ler o valor de um atributo privado (getter) quando isso fizer sentido;
- Modificar o valor com segurança (setter), podendo impor regras de validação (ex.: impedir valores negativos, verificar formato, lançar exceções, registrar logs);
- Preservar a integridade do objeto, garantindo que ele não entre em um estado inválido.
Logo, a justificativa correta é a alternativa que afirma que getters e setters permitem acesso controlado a atributos privados, com possibilidade de validação.
Alternativa correta: (d).