Ao se utilizar o encapsulamento, não é necessário saber com...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - Certo
O conceito de encapsulamento é um dos pilares fundamentais da programação orientada a objetos (POO). Encapsulamento é o princípio pelo qual os detalhes internos do funcionamento de uma classe são ocultados dos objetos que a utilizam. Em outras palavras, a complexidade interna é escondida, expondo apenas uma interface (métodos e propriedades) que os outros objetos podem usar para interagir com ela.
Isso significa que, ao utilizar uma classe que aplica o encapsulamento, não é preciso entender ou mesmo estar ciente de como ela realiza suas funções internas. É necessário apenas saber quais métodos estão disponíveis para interação e quais propriedades podem ser acessadas ou modificadas. Isso permite que a implementação interna da classe possa mudar sem que haja impacto para os objetos que a utilizam, desde que a interface pública permaneça consistente.
Por exemplo, suponha que você tem uma classe Carro com um método acelerar(). Você, como usuário desta classe, não precisa saber como o método acelerar() aumenta a velocidade do carro, quais algoritmos utiliza ou quais variáveis internas manipula. Você apenas chama o método carro.acelerar() e espera que o carro aumente sua velocidade conforme projetado.
Essa abordagem de encapsulamento proporciona diversos benefícios, como:
- Maior facilidade de manutenção, pois mudanças internas não afetam outras partes do sistema.
- Redução da complexidade, tornando o sistema mais fácil de entender para novos desenvolvedores.
- Possibilidade de reutilização de código, uma vez que interfaces bem definidas podem ser aplicadas em diversos contextos.
O encapsulamento é, portanto, uma técnica que contribui para a modularidade e a robustez do código, e a questão está correta ao afirmar que, ao usá-lo, não é necessário saber como ele funciona internamente.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.
Para exemplificar, podemos pensar em uma dona de casa (usuário) utilizando um liquidificador (sistema). O usuário não necessita conhecer detalhes do funcionamento interno do sistema para poder utilizá-lo, precisa apenas conhecer a interface, no caso, os botões que controlam o liquidificador.
Uma grande vantagem do encapsulamento é que toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados. No exemplo do liquidificador, um técnico poderia substituir o motor do equipamento por um outro totalmente diferente, sem que a dona de casa seja afetada - afinal, ela continuará somente tendo que pressionar o botão.
O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe.
Encapsular atributos também auxilia a garantir que o estado e o comportamento de um objeto se mantenha coeso. Por exemplo, no caso da classe Semaforo
poderiamos ter um método de acesso chamado lerCor()
, e um modificador chamado proximaCor()
. O estado é mantido pois os usuários da classe não podem alterar as cores de um semáforo ao seu bel prazer e, por exemplo, fazer a seguinte troca de cores: vermelho-amarelo-vermelho. É comum usar o padrão get<nomeDoAtributo> para o método que retorna o valor atual do atributo e set<nomeDoAtributo> para o método que modifica o valor de um atributo do objeto, como no exemplo abaixo: setComProtecao
e getComProtecao
.
Achei estranho o uso do termo "transmite". CESPE gosta de usar umas palavras alternativas que confundem.
Do jeito que a questão foi formulada, ficou parecendo que o encapsulamento é um objeto e tem atributos. Hehehe.
também acho estranho o termo transmitir atributos, pq a ideia de encapsulamento é vc nem saber que aquele objeto tem atributos, apenas como saber como manipular sua interface de comunicação
Que questão mal formulada.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo