Encapsulamento de dados e ocultação da informação
Por Igor Cruz
(igor.cruz@ccc.ufcg.eu.br)
Neste recapitulando iremos revisar um dos conceitos mais importantes da programação orientada a objetos, o encapsulamento de dados.Continuaremos também a exercitar nossos conhecimentos com uma questão do POSCOMP 2012.

Encapsulamento de dados é um tema muito importante na área da computação, já que em muitas das linguagens usadas em programação, como java, abordam esse assunto.

“Encapsulamento: os dados (atributos) são armazenados em uma caixa preta (classe) junto com as operações (métodos) que os manipulam.”

O encapsulamento favorece a ocultação da informação quando esconde detalhes de implementação do objeto (tanto pelo armazenamento dos dados, quanto pela implementação dos métodos). Mas, encapsulamento por si só não garante ocultação da informação. É preciso controlar a visibilidade dos dados (sendo private) e definir métodos públicos para manipular esses dados.

Leia a questão abaixo do POSCOMP 2012:

30) O encapsulamento dos dados tem como objetivo ocultar os detalhes da implementação de um determinado módulo. Em linguagens orientadas a objeto, o ocultamento de informação é tornado explícito requerendo-se que todos os métodos e atributos em uma classe tenham um nível particular de visibili- dade com relação às suas subclasses e às classes clientes.

Em relação aos atributos de visibilidade, assinale a alternativa correta.

a)Um atributo ou método público é visível a qualquer classe cliente e subclasse da classe a que ele pertence.

b)Um atributo ou método protegido é visível somente à classe a que ele pertence, mas não às suas subclasses ou aos seus clientes.

c)Um atributo ou método privado é vísivel somente às subclasses da classe a que ele pertence.

d)Um método protegido não pode acessar os atributos privados declarados na classe a que ele pertence, sendo necessária a chamada de outro método privado da classe.

e)Um método público pode acessar somente atributos públicos declarados na classe a que ele pertence.

Assista a aula abaixo (curso “Aprenda Java Fácil” aula 9):

Resolvendo a questão (elimando alguns ítens):

Inicialmente vamos eliminar alguns itens:

  • Eliminamos o ítem“b”, pois um atributooumétodo protegido é visível tantoà classe a que ele pertence,como também às suas subclasses e classes do mesmo pacote.

  • Descartamos o ítem “c”, já que umatributooumétodo privado é vísivel somente na classe a que ele pertence.

  • O ítem “d” esta incorreto, porque qualquer método pode acessarqualquer atributo declarado na classe a que ele pertence.

  • O ítem “e” é incorreto pelo mesmo motivo do ítem “d”.

Assim, só nos resta o ítem “a”, que esta perfeitamente correto, já que atributos e métodos publicos são visíveistanto em sua própria classe, como em suas subclasses e classes clientes a que ele pertence.

Analisando esses dois itens, eliminamos a letra a. Já que o tempo do algoritmo é O(log n) para o tempo médio.

Referências:

Jornal PETNews - Edição: Jessika Renally - Revisão: Tiaraju Smaneoto e Lívia Sampaio
Grupo PET Computação UFCG, 2013. All rights reserved.