SóProvas


ID
2616511
Banca
CESPE / CEBRASPE
Órgão
STM
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de construção de sistemas, julgue o item subsequente.


Em orientação a objetos, os membros de dados de uma classe devem ser acessados por um método específico do objeto, e não diretamente.

Alternativas
Comentários
  • membros de dados = atributos

  • Achei esse "devem" meio forte. Não seria apenas uma boa prática?

  • E se o atributo for público pode acessar direto não?

  • O embasamento da banca toma o raciocínio de Engholm, o qual ensina que "os princípios da orientação a objeto pregam que nenhum membro de dados deve ser acessado e/ou alterado diretamente sem a utilização de método específico do objeto para tal."[1] 

     

    De modo semelhante, em um artigo, a Oracle se refere ao encapsulamento como um dos princípios fundamentais da POO. Em inglês, "hiding internal state and requiring all interaction to be performed through an object's methods is known as data encapsulation — a fundamental principle of object-oriented programming".[2]

     

    Fonte:

    [1] Análise e Design Orientados a Objetos (Por Hélio Engholm)

    [2] Object-Oriented. https://docs.oracle.com/javase/tutorial/java/concepts/object.html

  • Aí entra aquela história: o CESPE quer regra ou excecao?

     

    Só no chute mesmo.

  • A questão seria melhor elaborada se tivesse falado em boas práticas  de orientação a objeto.

  • São acessados através dos métodos getters and setters na OO. Logo, se não usar os especificadores de acesso, não se está modelando uma classe em OO de modo correto.


    Certo.


    Fortuna Audaces Sequitur.

  • Certinho.

    No Encapsulamento, cada módulo do programa orientado a objeto, uma classe nesse caso, deve reunir os seus atributos e as operações associadas a determinado conceito. E ele deve expor esses comportamentos de uma maneira uniforme para o mundo externo. O cara que acessar a sua classe ou o seu componente deverá enxergar tudo isso com uma caixa preta. Essa caixa preta tem uma interface externa... é o mecanismo a partir do qual ele acessa aquela classe... ou seja, o cara acessa a classe por meios de métodos públicos... por meio da visibilidade que é dada a ele para acessar tal classe.

    Assim, a classe deve esconder informação, prover abstração e prover regras que impeçam acesso direto a atributos e métodos.

    Dessa maneira, apenas a classe proprietária consegue manipular suas próprias informações (atributos e métodos).

    O encapsulamento é provido por meio de 'modificadores de acesso' (slide seguinte) que representam a forma de proteção.

  • O acesso direto aos dados de uma instância violam o encapsulamento. Por exemplo, uma classe pessoa física, que tenha um cpf, o atributo cpf pode ter uma string de valor '12312312309', enquanto o método getCpf(), poderia retornar o número em questão corretamente formatado. No mesmo exemplo: 123.123.123-09