Qual é a definição correta de encapsulamento na programação orientada a objetos?
Questão
Qual é a definição correta de encapsulamento na programação orientada a objetos?
Alternativas
A) A capacidade de criar objetos a partir de classes
B) O processo de esconder a implementação interna de um objeto para protegê-lo de alterações acidentais
C) A técnica de armazenar dados em diferentes tipos de variáveis para otimizar o uso de memória
D) A prática de armazenar dados de forma linear em uma estrutura de dados
E) A habilidade de herdar características de uma classe-pai
Explicação
Encapsulamento, em Programação Orientada a Objetos (POO), é o princípio de restringir o acesso direto ao estado interno (atributos) e à implementação de um objeto, expondo apenas uma interface controlada (por exemplo, métodos públicos) para interação.
Passo a passo do porquê a alternativa B é a correta:
- “Esconder a implementação interna”: encapsulamento separa o que o objeto faz (interface) de como ele faz (implementação).
- “Proteger de alterações acidentais”: ao impedir acesso direto a atributos (usando modificadores como
private,protected, etc.), reduz-se o risco de o estado do objeto ser modificado indevidamente. - Isso normalmente é feito por meio de métodos de acesso (getters/setters) ou métodos que validam regras de negócio antes de alterar o estado.
Por que as outras estão erradas:
- A descreve instanciação (criar objetos a partir de classes), não encapsulamento.
- C fala de otimização/memória e tipos de variáveis, não é um pilar de POO.
- D trata de estrutura de dados linear (ex.: listas/arrays).
- E descreve herança.