SóProvas


ID
321172
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, julgue os itens subsequentes.

Por meio do encapsulamento, para impedir o acesso direto ao atributo de um objeto, são disponibilizados externamente apenas os métodos que alteram esse objeto. Por exemplo, não é preciso conhecer todos os detalhes dos circuitos de uma câmera digital para utilizá-la; a parte externa da câmera encapsula os detalhes, provendo para o usuário uma interface mais amigável.

Alternativas
Comentários
  • Encapsulamento é a técnica de transformar os objetos que compõem uma aplicação em verdadeiras caixas-pretas. De fato, se pensarmos em termos de informática, é possível para um usuário comum usar todas as funcionalidades de uma impressora sem nem mesmo entender seu funcionamento interno. Imagine o desastre que seria se todos os usuários resolvessem abrir suas impressoras para investigar o que há dentro delas.

    Da mesma forma, ao contruir uma classe, devemos fazê-lo de forma que o usuário desta classe tenha acesso apenas aos métodos que permitem ler informações da classe ou fornecer os dados necessários para sua correta operação. Dados relativos ao funcionamento interno da classe devem permanecer ocultos e acessíveis somente aos métodos da própria classe.

    O encapsulamento deve ser aplicado de forma a permitir que alterações na estrutura interna de uma classe não prejudique o funcionamento do código externo que a usa.
  • Olá, pessoal!

    O gabarito foi atualizado para "E", conforme edital publicado pela banca e postado no site.

    Justificativa da banca:  Por meio do encapsulamento, são disponibilizados externamente métodos de acesso( get´s ) e métodos que alterem esse objeto ( set´s) . Desse modo opta-se pela sua alteração.

    Bons estudos!
  • mas vc disponibilizar os setters é justamente quebrar o encapsulamnento

  • "mas vc disponibilizar os setters é justamente quebrar o encapsulamnento"

    Raphael, poderia explicar essa sua afirmação? 

    Acredito que a disponibilização dos métodos setters não compromete o encapsulamento. A disponibilização de um método setter é apenas uma forma "CONTROLADA" de se modificar um determinado atributo, evitando o acesso direto ao mesmo. 

  • COncordo em Gênero número e grau com o Frederico, pois a maneira que temos como criar o encapsulamento é justamente bloqueando o acesso direto (neste caso) aos atributos do objeto e inserir getters e setters naqueles atributos que precisam ser modificados ou acessados. Notem com cuidado que a questão não fala em disponibilizar todos os atributos, ela não foi genérica. 

    A forma "controlada" de acesso é justamente a aplicação do conceito de emcapsulamento. Exemplo: atributo saldo de uma classe Conta Corrente. Quando disponibilizamos um método debito() este esconde (encapsula) o acesso ao atributo.

    Para mim a questão deveria ser considerada como correta.

  • Caros colegas, o erro da questão está no trecho: "apenas os métodos que alteram esse objeto", sabemos que não é apenas disponibilizado para o mundo externo os métodos set, mas sim os métodos get(leitura) e set(escrita), ou seja, a questão restringiu demais o conceito de encapsulamento.