Questão de Programação — JavaScript — Quadrix 2024
- Código
- qg347827
- Banca
- Quadrix
- Órgão
- COREN-PR
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: C — CERTO. O encapsulamento é, de fato, a capacidade de esconder os detalhes internos de implementação de uma classe, expondo apenas uma interface pública para interação com os objetos. Essa definição é um dos pilares fundamentais da POO e está diretamente relacionada ao conceito de ocultamento de dados.
O encapsulamento é um dos quatro pilares da programação orientada a objetos, ao lado da abstração, herança e polimorfismo. Enquanto a abstração foca em destacar apenas as características essenciais de um objeto, ignorando detalhes irrelevantes, o encapsulamento atua como um mecanismo de proteção: ele esconde os atributos e os detalhes de implementação dos métodos, permitindo que o acesso aos dados seja feito apenas por meio de métodos públicos (getters e setters, por exemplo). Isso impede que o estado interno de um objeto seja modificado de forma inadequada ou imprevisível, garantindo a integridade dos dados e facilitando a manutenção do código.
Na prática, o encapsulamento é implementado por meio de modificadores de acesso, como private, protected e public em linguagens como Java e C++, ou por convenções como o uso de underscores (_atributo) em Python. Por exemplo, em uma classe ContaBancaria, o atributo saldo pode ser declarado como privado, e o acesso a ele seria feito apenas através dos métodos depositar() e sacar(), que validam as operações antes de modificar o saldo. Isso garante que o saldo nunca seja negativo ou alterado diretamente por código externo.
A distinção mais importante que a banca explora neste tema é entre encapsulamento e abstração. Embora ambos envolvam a ideia de "esconder", eles atuam em níveis diferentes: a abstração esconde a complexidade do mundo real, modelando apenas o que é relevante; o encapsulamento esconde a implementação interna da classe, protegendo os dados e o comportamento. Confundir esses dois conceitos é um erro comum, e é exatamente essa confusão que a banca pode explorar em questões sobre POO.
A pegadinha desta questão é justamente a tentação de associar a definição de encapsulamento à abstração, ou vice-versa. O enunciado afirma que encapsulamento é "a capacidade de esconder detalhes internos de implementação de uma classe", o que está perfeitamente alinhado com a definição clássica. Não há qualquer inversão ou troca de conceitos aqui — a afirmação é literalmente correta.
A afirmação está correta porque define com precisão o conceito de encapsulamento na POO. O encapsulamento é o mecanismo que permite esconder os detalhes internos de implementação de uma classe, como atributos e métodos, expondo apenas uma interface pública para interação. Isso é feito por meio de modificadores de acesso (como private e public) ou convenções de nomenclatura, e tem como objetivo proteger os dados, aumentar a modularidade e facilitar a manutenção do código. A definição apresentada no enunciado é exatamente a que se encontra na literatura e em materiais de estudo sobre orientação a objetos.
O encapsulamento é frequentemente confundido com a abstração. Enquanto a abstração foca em modelar apenas as características essenciais de um objeto, ignorando detalhes irrelevantes, o encapsulamento foca em esconder a implementação interna da classe, protegendo os dados e o comportamento. São conceitos complementares, mas distintos.
Gabarito: C — CERTO
Link permanente: /questoes/qg347827