Prévia do material em texto
Programação Orientada a Objetos - Avaliação II
1Uma das principais vantagens em se desenvolver um software utilizando o paradigma
da orientação a objetos, é a reutilização de código-fonte, tornando-o mais legível e fácil
de realizar manutenção. Neste sentido, podemos exemplificar a facilidade de
manutenção com a necessidade de criar uma coluna em uma tabela, gravando um valor
fixo. Neste caso, basta alterar o método que realiza a inserção de registro nesta tabela, e
o software está alterado, mesmo que o método seja invocado por mais de uma classe.
Analise o código-fonte a seguir e classifique V para as sentenças verdadeiras e F para as
falsas: ( ) Devido à herança, a linha 31 está correta. ( ) A classe "Carro" herda o método
"getNomeModelo()" da classe "Veiculo". ( ) A classe "Veiculo" herda os métodos com
modificador "public" da classe "Carro". ( ) Ocorre uma relação de herança entre as duas
classes, sendo que a classe "Carro" herda atributos e métodos da classe "Veiculo".
Assinale a alternativa que apresenta a sequência CORRETA:
A
F - V - F - F.
B
V - V - F - V.
C
V - F - F - V.
D
V - V - V - F.
2O encapsulamento é um dos pilares da programação orientada a objetos, e sua
utilização de forma correta serve como embasamento para os outros dois pilares: a
herança e o polimorfismo. Com relação ao encapsulamento, assinale a alternativa
CORRETA:
A
Através do encapsulamento, podemos proteger os valores internos dos objetos de
acessos desnecessários.
B
Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos
atributos.
C
O objetivo principal do encapsulamento é obter um alto acoplamento entre as classes.
D
O encapsulamento permite que os objetos se comuniquem através de mais caminhos.
3A herança é um dos pilares da programação orientada a objetos e pode, quando bem
utilizada, diminuir o esforço na manutenção do código fonte. Com relação ao
relacionamento de herança entre duas ou mais classes, analise as sentenças a seguir: I-
Através da herança, é possível reaproveitar atributos já definidos em uma classe mãe. II-
Uma classe filha pode herdar de quantas superclasses quiser na linguagem de
programação Java. III- Não é possível herdar a implementação de métodos, visto que
todos devem ser reescritos através do polimorfismo. IV- A palavra inherits define a
herança na linguagem de programação Java. Agora, assinale a alternativa CORRETA:
A
As sentenças I, II e IV estão corretas.
B
Somente a sentença I está correta.
C
As sentenças II e III estão corretas.
D
Somente a sentença IV está correta.
4O Polimorfismo de inclusão permite que se defina um novo comportamento para um
objeto sem que se faça alterações nos que já estão funcionando, minimizando
consideravelmente os custos e reduzindo o tempo para novas implementações.
Considerando que a figura a seguir traz duas classes relacionadas a uma interface,
classifique V para as sentenças verdadeiras e F para as falsas: ( ) O método encript() da
interface é implicitamente abstrato. ( ) Na linguagem de programação Java,
demonstraríamos que SHA implementa IAlgoritmoCriptografia através da palavra
reservada extends. ( ) Um método existente em outra classe cuja assinatura seja “public
void criptografar(IAlgoritmoCriptografia iac)” pode receber como parâmetro tanto um
objeto da classe SHA quanto um objeto da classe DES. ( ) Podemos dizer que tanto
SHA quanto DES implementam IAlgoritmoCriptografia. Agora, assinale a alternativa
que apresenta a sequência CORRETA:
A
V - V - F - F.
B
V - V - F - V.
C
V - F - V - V.
D
F - V - F - V.
5A utilização de classes abstratas permite uma maior confiabilidade na definição da
hierarquia de herança, pois possui características especiais que impedem sua utilização
de forma errônea por outros desenvolvedores. Considerando que as palavras
sublinhadas na figura a seguir representam erros de compilação, classifique V para as
sentenças e F para as falsas: ( ) Bastaria colocar a palavra reservada abstract na frente da
palavra class para resolver todos os problemas da classe. ( ) Uma classe abstrata pode
possuir métodos concretos. ( ) Somente classes abstratas podem possuir métodos
abstratos. ( ) O primeiro método imprime() deve receber um parâmetro de qualquer tipo
para que seu erro de compilação seja corrigido. Agora, assinale a alternativa que
apresenta a sequência CORRETA:
A
V - V - F - V.
B
V - V - F - F.
C
V - F - F - V.
D
F - V - V - F.
6Programação é o processo de escrita, teste e manutenção de um programa de
computador. A Programação Orientada a Objetos (POO) diz respeito a um padrão de
desenvolvimento que é seguido por muitas linguagens, como C# e Java. Com relação
aos conceitos de programação orientada a objetos e sua implementação na linguagem
Java, analise as afirmativas a seguir: I- Classes abstratas servem como modelo para
outras classes que dela herdam e devem ser instanciadas utilizando a palavra reservada
"new". II- Todas as classes em Java herdam, direta ou indiretamente, a classe Object.
III- Interfaces podem ser utilizadas quando classes diferentes (não relacionadas)
precisam de funcionalidades comuns (métodos) ou utilizam constantes comuns. IV- Na
linguagem Java, é possível haver polimorfismo por meio da implementação de herança
entre classes. Agora, assinale a alternativa CORRETA:
A
As afirmativas II, III e IV estão corretas.
B
As afirmativas I e III estão corretas.
C
Somente a afirmativa II está correta.
D
As afirmativas I e IV estão corretas.
7Os modificadores de acesso são palavras reservadas da linguagem de programação
Java e definem os padrões de visibilidade de acesso às classes, aos atributos e aos
métodos. Por intermédio dos modificadores de acesso, é possível ocultar determinadas
partes do código, dividindo o programa em partes menores e independentes e esta ação,
de ocultar e/ou dividir, é conhecida como encapsulamento Acerca do conceito de
encapsulamento e dos modificadores de acesso da linguagem de programação Java,
analise as afirmativas a seguir: I- Uma declaração com o modificador "public" permite o
acesso de qualquer lugar do projeto Java e por qualquer entidade que possa visualizar a
classe a que ela pertença. II- Os membros de uma classe declarados com o modificador
"protected" não podem ser acessados ou utilizados por nenhuma outra classe. III-
Métodos declarados como "default" só podem ser acessados a partir dos métodos da
própria classe. IV- O Java define quatro modificadores de visibilidade: "private",
"public", "protected" e "default". Agora, assinale a alternativa CORRETA:
A
As afirmativas II e III estão corretas.
B
As afirmativas II, III e IV estão corretas.
C
Somente a afirmativa I está correta.
D
As afirmativas I e IV estão corretas.
8A programação orientada a objetos permite o desenvolvimento de códigos-fonte
utilizando o encapsulamento, que evita ou diminui o acoplamento, dependência dos
códigos-fonte, e aumenta a coesão, que é o princípio da responsabilidade única de um
trecho de código-fonte ou um método, por exemplo. Além disso, o polimorfismo é outra
vantagem da programação orientada a objetos, o qual possibilita a manutenção futura
sem necessitar de muitas alterações. Com relação ao encapsulamento, assinale a
alternativa CORRETA:
A
O polimorfismo possui a desvantagem de tornar as classes com maior quantidade de
código-fonte.
B
O polimorfismo permite que um único nome de classe represente diferentes códigos-
fonte.
C
O polimorfismo apenas ocorre quando o modificador dos métodos da classe forem
"protected".
D
O principal objetivo do polimorfismo é a capacidade de herdar métodos e classes para
uma subclasse.
9Através do encapsulamento, é possível deixar o software mais manutenível, através da
centralização de responsabilidades, ocultação de implementação e exposição deinterfaces. Com relação ao encapsulamento e sua implementação na linguagem de
programação Java, analise as sentenças a seguir: I- Atributos também podem ser
ocultados, no sentido de garantir um maior encapsulamento. II- O modificador default
permite o acesso padrão a todos dentro da mesma aplicação. III- Quanto maior o
acoplamento, maior a dependência entre os objetos e, consequentemente, mais difícil a
manutenção do código fonte. IV- Tanto a coesão quanto o encapsulamento são obtidos
na linguagem de programação Java através do modificador de acesso protected. Agora,
assinale a alternativa CORRETA:
A
As sentenças I e III estão corretas.
B
As sentenças III e IV estão corretas.
C
Somente a sentença IV está correta.
D
Somente a sentença II está correta.
Atenção: Esta questão foi cancelada, porém a pontuação foi considerada.
10O conceito de classes abstrata, através de suas características especiais, fornece ao
conceito de herança uma maior confiabilidade, uma vez que as classes modeladas com
herança precisam ser melhor idealizadas e projetadas. Dessa forma, avalie o código-
fonte da classe "Atleta": package fontes; public class Atleta{ private int pais; private
String modalidade; private boolean medalistaOlimpico; public abstract void
competir(String modalidade) { System.out.println("É especialista em " + modalidade); }
public void competirPor(int pais){ System.out.println("O atleta compete por " + pais); }
} I- A classe em questão não apresenta nenhum problema de sintaxe. II- O método
"competirPor(int pais)" está gerando um erro de sintaxe, e adicionando a palavra-chave
"abstract", antes da palavra chave "void", resolverá o erro gerado. III- O método
"competirPor(int pais)" não gera erros de sintaxe, logo não necessita da palavra-chave
"abstract", antes da palavra-chave "void". IV- O método "competir(String modalidade)"
gera erro de sintaxe. Assinale a alternativa CORRETA:
A
As sentenças II e III estão corretas.
B
As sentenças I e II estão corretas.
C
As sentenças II e IV estão corretas.
D
As sentenças III e IV estão corretas.