Questão de Engenharia de Software — Orientação a Objetos — Quadrix 2025
- Código
- qg594755
- Banca
- Quadrix
- Órgão
- CFBio
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Sistemas
- CCerto
- EErrado
GabaritoC — Certo
✅ CERTO. O encapsulamento, na análise orientada a objetos, tem como objetivo central ocultar os detalhes internos de uma classe (atributos e métodos) e expor apenas uma interface de acesso, o que torna o software mais flexível, mais fácil de alterar e de criar novas implementações. Essa é uma definição clássica e amplamente aceita na engenharia de software, presente em obras de referência como as de Pressman e Sommerville.
O encapsulamento é um dos quatro pilares da orientação a objetos, ao lado de herança, polimorfismo e abstração. Ele consiste em agrupar dados e os métodos que operam sobre esses dados em uma única unidade (a classe) e, ao mesmo tempo, restringir o acesso direto a esses dados, permitindo que sejam acessados apenas por meio de métodos públicos (getters e setters, por exemplo). Essa restrição é o que chamamos de ocultação de informação (information hiding), conceito introduzido por David Parnas na década de 1970.
A principal vantagem do encapsulamento é a independência entre a interface e a implementação. Quando uma classe encapsula seus atributos, o restante do sistema só conhece a interface pública (os métodos). Isso significa que, se a implementação interna mudar (por exemplo, trocar uma lista por um mapa, ou alterar a forma de calcular um valor), os demais componentes do sistema não precisam ser alterados, desde que a interface permaneça a mesma. Essa característica é exatamente o que torna o software mais flexível e mais fácil de alterar.
Além disso, o encapsulamento facilita a criação de novas implementações porque, ao expor uma interface estável, permite que diferentes implementações sejam criadas e substituídas sem afetar o restante do sistema. Isso está diretamente relacionado ao princípio do aberto-fechado (OCP), um dos princípios SOLID, que afirma que as entidades de software devem ser abertas para extensão, mas fechadas para modificação. O encapsulamento é um dos mecanismos que viabilizam esse princípio.
Na prática, imagine uma classe ContaBancaria com um atributo privado saldo. O acesso ao saldo só é possível por métodos como getSaldo() e depositar(double valor). Se, no futuro, a regra de negócio mudar e for necessário aplicar uma taxa sobre cada depósito, basta alterar o método depositar — nenhum outro código que usa a classe precisa ser modificado. Essa é a essência do encapsulamento: proteger o estado interno e controlar as mudanças.
A banca explora aqui um conceito fundamental e bem estabelecido. A afirmação está correta e não há pegadinha ou exceção que a torne falsa. O encapsulamento é, de fato, um dos pilares que promovem a flexibilidade e a manutenibilidade do software orientado a objetos.
A afirmação descreve com precisão o objetivo do encapsulamento na análise orientada a objetos. Ao ocultar os detalhes internos e expor apenas uma interface, o encapsulamento permite que o software seja mais flexível (pois mudanças internas não afetam o restante do sistema), mais fácil de alterar (pois a manutenção se concentra em pontos isolados) e mais propício à criação de novas implementações (pois a interface estável permite substituir ou estender a implementação sem quebrar o contrato). Essa é uma definição clássica, presente em toda a literatura de engenharia de software e programação orientada a objetos.
A alternativa E afirma que o item está errado, mas isso não procede. O encapsulamento é exatamente o mecanismo que promove a flexibilidade, a facilidade de alteração e a criação de novas implementações, conforme explicado. Não há qualquer fundamento técnico para considerar a afirmação incorreta. Portanto, a alternativa E está errada.
Gabarito: letra C
Link permanente: /questoes/qg594755