Analise as afirmativas a seguir relativas ao paradigma da or...
I - O princípio do encapsulamento preconiza que um objeto deve esconder a sua complexidade interna.
II - Uma mensagem de um objeto A para um objeto B indica que A realizou uma tarefa requisitada por B.
III - A existência da mesma operação polimórfica definida em duas classes, ClasseA e ClasseB, implica necessariamente que ou ClasseA seja subclasse de ClasseB, ou que ClasseB seja subclasse de ClasseA.
É correto APENAS o que se afirma em
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A - I.
A questão aborda conceitos fundamentais da programação orientada a objetos (POO), que é um paradigma de programação baseado no conceito de "objetos". Esses objetos podem conter dados, na forma de campos, frequentemente conhecidos como atributos, e código, na forma de procedimentos, frequentemente conhecidos como métodos. Vamos agora analisar a alternativa correta:
A primeira afirmativa diz que o princípio do encapsulamento preconiza que um objeto deve esconder sua complexidade interna. Isso é correto. O encapsulamento é um dos pilares da POO e serve para ocultar a implementação interna de um objeto, expondo apenas interfaces (métodos) através dos quais a comunicação com o objeto é realizada. Isso significa que os detalhes de como uma classe executa suas tarefas são escondidos do restante do código, que não precisa conhecê-los para poder utilizar a classe.
Outras afirmativas da questão contém equívocos:
- A afirmativa II está errada porque uma mensagem de um objeto A para um objeto B indica que B deve realizar uma tarefa, e não ao contrário. Em POO, uma "mensagem" é geralmente entendida como uma chamada de método; A está solicitando que B execute uma de suas operações.
- A afirmativa III também está incorreta porque o polimorfismo permite que diferentes classes que não têm uma relação de herança direta compartilhem o mesmo nome de método, desde que assinaturas compatíveis sejam respeitadas, muitas vezes por meio de uma interface comum ou uma classe abstrata base. Portanto, não implica necessariamente uma relação direta de herança entre as classes.
Com base nessa análise, conseguimos entender que apenas a afirmativa I está correta e, portanto, a alternativa A é a resposta correta para a questão.
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
I - O princípio do encapsulamento preconiza que um objeto deve esconder a sua complexidade interna.
CORRETO
II - Uma mensagem de um objeto A para um objeto B indica que A realizou uma tarefa requisitada por B.
Na verdade é o oposto, B realizou uma tarefa requisitada por A.
III - A existência da mesma operação polimórfica definida em duas classes, ClasseA e ClasseB, implica necessariamente que ou ClasseA seja subclasse de ClasseB, ou que ClasseB seja subclasse de ClasseA.
Não necessariamente.
Segue um cenário possível: A ClasseA e a ClasseB podem não possuir nenhum relacionamento direto entre si, e ambas serem diretamente subclasses de uma ClasseC. Assim, poderia existir uma operação polimórfica definida em todas essas classes.
Essa questão também foi comentada no link abaixo, deixando mais claro o item III:
http://linubr.blogspot.com/2012/08/questoes-de-java-da-prova-da-petrobras.html
Não concordo com o gabarito esse principio esta relacionado ao conceito de abstração.
Abstração
- Uma abstração refere-se a uma sequência de instruções que possuem uma função específica e limitada.
- Permite especificar procedimentos e dados internamente, mas suprimir a necessidade de que “estranhos” tenham conhecimento de detalhes de baixo nível.
- Os detalhes específicos são omitidos;
- É uma técnica contra a complexidade da programação;
- Permite que os programadores concentrem-se nos atributos essenciais e ignorem os atributos subordinados.
Encapsulamento:
sugere que os métodos sejam “categorizados por decisões de projeto que ocultem (cada uma delas) de todas as demais.”
- Prevê o isolamento de determinados elementos do objeto (métodos /atributos) de acordo com a necessidade de acesso a eles.
- Nem todo método e atributo precisam estar visíveis e acessíveis publicamente;
- Os dados de um objeto devem ser “protegidos” e apenas modificados por métodos da própria classe.
- O encapsulamento se dá através dos modificadores de acesso que controlam a visibilidade.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo