Associação Carioca de Ensino Superior
Centro Universitário Carioca
Conceitos de Orientação a Objetos
Lista de Exercícios
1.
Projeto de subsistema composto por um conjunto de classes abstratas e concretas. Estabelece a
arquitetura para aplicações em um domínio. Uma aplicação específica é construída a partir da criação
de subclasses especificas para a aplicação, sendo essas subclasses das classes abstratas. A reutilização
leva a uma inversão de controle.
Qual opção abaixo corresponde à descrição anterior?
a) Composição
b) Framework
c) Sistemas orientados a serviços
d) Intenção do padrão de projeto composite
e) Componente de software
2.
Em aplicações orientadas a objetos é possível construir diferentes tipos de classes, como:
a) classes abstratas, que podem possuir construtores e serem instanciadas diretamente.
b) interfaces, que podem possuir construtores e serem instanciadas diretamente.
c) classes abstratas, que podem conter métodos implementados e assinaturas de métodos sem
implementação.
d) interfaces, que podem possuir constantes, variáveis e atributos privados.
e) superclasses em relações de herança, que podem possuir métodos abstratos, mas não podem ser
instanciadas diretamente.
3.
Na programação orientada a objetos, as classes podem conter, dentre outros elementos, métodos e
atributos. Os métodos
a) devem receber apenas parâmetros do mesmo tipo.
b) não podem ser sobrecarregados em uma mesma classe.
c) precisam possuir corpo em interfaces e classes abstratas.
d) podem ser sobrescritos em aplicações que possuem relação de herança.
e) definidos como private só podem ser acessados de classes do mesmo pacote.
4.
No paradigma de programação Orientada a Objetos, a Herança facilita:
a) a leitura e a escrita de código pelo compartilhamento de nomes dos métodos.
b) a reutilização e a modificação dos módulos de códigos existentes.
c) esconder e proteger detalhes da implementação.
d) a definição de classes abstratas.
e) a composição e interação entre os objetos.
5.
O aumento da produtividade de desenvolvimento e a capacidade de compartilhar o conhecimento
adquirido, representa uma vantagem no uso de projetos orientados a objeto, porque
a) um objeto pode ser chamado por objetos de classe diferente da sua.
b) os objetos podem ser potencialmente reutilizáveis.
c) as classes podem ser concretas ou abstratas.
d) todo método pode ser derivado naturalmente das operações de sua classe.
e) o encapsulamento impossibilita equívocos de código.
6.
Em relação à Programação Orientada a Objetos, é INCORRETO afirmar:
Associação Carioca de Ensino Superior
Centro Universitário Carioca
a) Polimorfismo pode ser entendido como um conceito complementar ao de herança. Assim, no
polimorfismo é possível enviar a mesma mensagem a diferentes objetos e cada objeto responder da
maneira mais apropriada para sua classe.
b) Uma agregação representa um todo que é composto de várias partes e constitui um relacionamento
de contenção; se qualquer uma das partes for destruída, as demais partes também o serão.
c) Interfaces são como as classes abstratas, mas nelas não é possível implementar nenhum método,
apenas declarar suas assinaturas; uma classe ao implementar uma interface deverá escrever todos os
seus métodos.
d) No contexto da herança, uma instância da subclasse é, também, uma instância da superclasse.
e) A aplicação do polimorfismo utilizando interfaces requer que o método polimórfico seja definido na
classe ancestral como abstract para possibilitar sua redefinição nas classes descendentes.
7.
Em um projeto orientado a objetos, são unidades naturais de modularização:
a) objetos.
b) associações.
c) classes.
d) interfaces.
e) operações.
8. A utilização de um sistema orientado a objetos não deve depender de sua implementação interna,
mas sim de sua
. Isso protege os elementos internos de uma classe e é o que define o
,
que determina, também, que os atributos da classe só podem ser acessados e atualizados por suas
.
Completa correta e respectivamente as lacunas I, II e III:
a) programação; método; mensagens.
b) interface; encapsulamento; operações.
c) operação; algoritmo; interfaces.
d) programação; método; heranças.
e) classificação; encapsulamento; interfaces.
9. Em um projeto de software orientado a objetos, surgiu a necessidade de modelar um certo
comportamento alternativo com base no tipo específico de uma determinada entidade.
Procedimento similar foi desenvolvido no passado, usando lógica condicional através dos comandos
se – então – se- não em uma linguagem de programação estruturada.
Qual recurso o programador deverá utilizar para solucionar a questão nesse novo projeto?
a) Agregação
b) Classes Abstratas
c) Encapsulamento
d) Polimorfismo
e) Composição
10. Uma classe abstrata define uma interface comum às suas subclasses. Interagir com objetos via
interfaces definidas em classes abstratas possibilita que os clientes dos serviços providos pelos
objetos não precisem conhecer as classes desses objetos. Os clientes precisam conhecer as classes
abstratas que definem as interfaces. Certo ou Errado, Justifique.
11. No desenvolvimento de sistemas, no âmbito das relações intermodulares entre as classes, diz-se que
o programa está bem estruturado quando há
a) maior coesão e maior acoplamento.
b) menor coesão e maior acoplamento.
c) menor coesão e menor acoplamento.
d) maior coesão e menor acoplamento.
Associação Carioca de Ensino Superior
Centro Universitário Carioca
e) apenas coesão ou apenas acoplamento.
12. Extensão natural do conceito de ocultação de informações, que diz: "um módulo deve executar uma
única tarefa dentro do procedimento de software, exigindo pouca interação com procedimentos que
são executados em outras partes de um programa", é o conceito de
a) coesão.
b) enfileiramento.
c) acoplamento.
d) visibilidade.
e) recursividade.
13. Visando obter maior independência funcional, é adequado que o esforço seja direcionado ao projeto
de módulos
a) que não usem estruturas de seleção.
b) cujas tarefas tenham elevada coesão.
c) cujas tarefas tenham coesão procedimental.
d) que não usem estruturas de repetição.
e) cujas tarefas tenham coesão lógica.
14. O acoplamento de conteúdo acontece quando, entre dois módulos, um referencia o interior do
outro. Esses dois módulos podem estar acoplados por mais de uma forma.
Desse modo, o acoplamento desses módulos será definido pela(o)
a) coesão existente entre esses módulos
b) portabilidade das atividades de um módulo para outro
c) troca de mensagens de suas funcionalidades
d) pior tipo de acoplamento por eles apresentado
e) tamanho das instruções comuns ao acoplamento
15. No contexto de programação orientada a objetos, considere as afirmativas abaixo.
I. Objetos são instâncias de classes.
II. Herança é uma relação entre objetos.
III. Mensagens são formas de executar métodos.
IV. Classes são apenas agrupamentos de métodos.
V. Ocorre herança múltipla quando mais de um método é herdado.
VI. Herança é uma relação entre classes.
Está correto o que se afirma APENAS em
a) I, III e IV.
b) I, III e VI.
c) III, IV e VI.
d) II, III e V.
e) II, IV e V.
16.
Assinale a opção correta.
a) As classes podem formar heranças segmentadas em classes adjacentes.
b) Overflow é a redefenição do fluxo de uma classe, em uma de suas subclasses.
c) Overriding é a redefinição de um método, defenido em uma classe, em uma de suas subclasses.
d) Overriding é a redefinição de uma classe através de métodos de objetos diferentes.
Associação Carioca de Ensino Superior
Centro Universitário Carioca
e) As classes não podem formar hierarquias de herança de superclasses e subclasses.
17. A classe abstrata ClasseAbstrata possui um método abstrato cuja assinatura é
public void imprima()
Cada subclasse concreta de ClasseAbstrata implementa o método imprima() de acordo com os seus
requisitos, resultando em métodos de mesma assinatura e comportamentos potencialmente diferentes
entre as subclasses.
A classe concreta ClasseComponente possui um método cuja assinatura é
public void execute(ClasseAbstrata instancia)
Em tempo de execução, o método receberá uma instância de uma das classes descendentes de
ClasseAbstrata. O fato de que uma chamada ao método imprima() da instância recebida poderá resultar
na execução de diferentes implementações do método, dependendo da classe concreta a que a
instância pertença, caracteriza o importante conceito da orientação a objetos chamado
a)
b)
c)
d)
e)
sobrecarga (overloading).
polimorfismo.
herança múltipla.
associação múltipla.
composição.
18. "A utilização de um sistema orientado a objetos não deve depender de sua implementação interna,
mas de sua interface." Esta afirmação remete ao conceito de
a) herança múltipla.
b) herança polimórfica.
c) prototipação.
d) encapsulamento.
e) especialização.
19. A coesão e o acoplamento são formas de se avaliar se a segmentação de um sistema em módulos
ou em componentes foi eficiente. Acerca da aplicação desses princípios, assinale a opção correta.
a) O baixo acoplamento pode melhorar a manutebilidade dos sistemas, pois ele está associado à criação
de módulos como se fossem caixas-pretas.
b) Os componentes ou os módulos devem apresentar baixa coesão e um alto grau de acoplamento.
c) Os componentes ou os módulos devem ser fortemente coesos e fracamente acoplados.
d) Um benefício da alta coesão é permitir realizar a manutenção em um módulo sem se preocupar com
os detalhes internos dos demais módulos.
e) A modularização do programa em partes especializadas pode aumentar a qualidade desses
componentes, mas pode prejudicar o seu reaproveitamento em outros programas.
20. Herança e interfaces são conceitos da orientação a objetos que possibilitam a obtenção de
polimorfismo. Em Java, uma interface pode
A. herdar de mais de uma interface.
B. ser instanciada diretamente por meio da instrução new.
C. possuir apenas assinaturas de métodos públicos e protegidos.
D. possuir métodos abstratos e estáticos.
E. conter declarações de constantes e de variáveis não inicializadas.
Download

Lista de Exercícios AV2