Buscar

Prova 2 - Programação Orientada a Objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

GABARITO | Avaliação II - Individual
Peso da Avaliação
1,50
Qtd. de Questões
10
Acertos/Erros
7/3
Nota
7,00
Uma das principais características da orientação a objetos é a possibilidade de ocultar partes do código de um objeto, chamada de
encapsulamento. Com o encapsulamento, cada parte do código-fonte é menor e independente de outras partes, isto é, cada método é
específico, realizando uma única operação, tornando o código-fonte mais reutilizável e legível. Com relação ao encapsulamento, assinale
a alternativa CORRETA:
A O encapsulamento permite a instância de uma classe em memória.
B A interface exposta de uma classe, se alterada para privada, encapsulada, não requer cuidado para os métodos chamadores.
C O encapsulamento evita que alguma entidade externa altere os valores dos atributos de um objeto indevidamente.
D Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento.
Por intermédio da herança, um dos pilares da programação orientada a objetos, é possível reaproveitarmos características e
comportamentos já implementados em outras classes sem a necessidade de realizar a cópia de código-fonte. Com relação a esse
conceito, classifique V para as sentenças verdadeiras e F para as falsas:
( ) Em uma superclasse, para acessar métodos da subclasse deve ser usada a instrução super.
( ) A implementação de herança múltipla em Java não é possível.
( ) Para definirmos um relacionamento de herança entre classes utilizamos a palavra reservada "derives".
( ) Uma subclasse herda os métodos da superclasse, entretanto, pode ter seus próprios métodos.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A F - F - V - V.
B V - V - V - F.
C V - F - F - V.
D F - V - F - V.
Classes abstratas são um recurso poderoso da linguagem Java para criação de abstrações. Utilizando classes abstratas pode-se
alcançar bons níveis de reutilização de código-fonte, além de fortalecer e favorecer o conceito de polimorfismo, permitindo a
reutilização e a extensão de estado e comportamento entre classes. Sobre as características das classes abstratas, analise as sentenças a
seguir:
I- Classes abstratas, por via de regra, não podem gerar objetos, mas construtores abstratos, construtores especiais, podem ser utilizados
por essas classes para permitir que objetos sejam criados.
II- Os métodos concretos de uma classe abstrata podem ser compartilhados, sem alterações, por todas as suas classes concretas geradas.
III- Em uma hierarquia de classes abstratas, a primeira ocorrência de uma classe concreta deve implementar todos os métodos abstratos
presentes na hierarquia.
IV- Em uma hierarquia de classes abstratas, a primeira ocorrência de uma classe concreta deve alterar todos os métodos concretos
presentes na hierarquia.
Assinale a alternativa CORRETA:
A As sentenças II e III estão corretas.
B As sentenças III e IV estão corretas.
C As sentenças II e IV estão corretas.
D As sentenças I e II estão corretas.
O paradigma da orientação a objetos aplicada no desenvolvimento de software possui a vantagem de tornar o código-fonte
reutilizável, mais legível, e fácil de realizar manutenção. O polimorfismo permite que outras classes representem o comportamento de
Alterar modo de visualização
1
2
3
4
classes que elas referenciam. Com relação às classes criadas no código-fonte, analise as sentenças a seguir:
(1)public class Veiculo {
(2) public void parar(){}
(3)}
(4)
(5)public class Motocicleta extends Veiculo{
(6) public void parar(){
(7) System.out.println("Parando a motocicleta!!");
(8) } 
(9)}
(10)
(11)//Veiculo utilitario esporte (SUV: Sport Utility Vehicle)
(12)public class Suv extends Veiculo{
(13) public void parar(){
(14) System.out.println("Parando o veículo utilitário!!");
(15) } 
(16)}
(17)
(18)public class Principal {
(19) public static void main(String[] args){
(20) Veiculo veiculo1 = new Motocicleta();
(21) Veiculo veiculo2 = new Suv(); 
(22) 
(23) veiculo1.parar();
(24) veiculo2.parar(); 
(25) } 
(26)}
I- Apesar do código-fonte não lidar com classes abstratas, existe o polimorfismo implementado entre as classes do exemplo.
II- Ao executarmos a classe Principal, ocorrerá um erro designando que a instância da classe Veiculo nas linhas 20 e 21 são inválidas,
pois recebem a instância de classes de outro tipo (Motocicleta e Suv).
III- A classe Veiculo referencia o comportamento das classes Motocicleta e Suv, e ao executarmos a classe Principal, será impresso
primeiramente a mensagem (Parando a motocicleta!!) e depois (Parando o veículo utilitário!!).
IV- As classes Motocicleta e Suv referenciam o comportamento da classe Veiculo, e ao executarmos a classe Principal, será impresso
primeiramente a mensagem (Parando o veículo utilitário!!) e depois (Parando a motocicleta!!).
Assinale a alternativa CORRETA:
A As sentenças III e IV 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 I e III estão corretas.
A utilização do recurso de Pacotes em Java permite uma melhor organização do código-fonte, além de permitir que duas ou mais
classes tenham o mesmo nome em pacotes diferentes. Juntamente com eles, o uso dos modificadores de visibilidade compõe uma
fórmula poderosa no tocante à definição de segurança e encapsulamento de um programa ou aplicação. Sobre a utilização de
modificadores de visibilidade na linguagem de programação Java, classifique V para as sentenças verdadeiras e F para as falsas:
( ) O modificador "default", aplicado para uma classe, permite o acesso a essa classe por uma classe de outro pacote através do
comando import.
( ) O modificador "default", definido para um método contido em uma classe pública, impede que o método seja acessado por outra
classe criada em outro pacote.
( ) O modificador "private", definido para um método contido em uma classe com o modificador "default", não impede que o método
seja acessado por outra classe criada no mesmo pacote.
( ) O modificador "public", definido para um método contido em uma classe pública, elimina qualquer tipo de restrição de acesso ao
método, mesmo que ele seja acessado em uma classe criada em outro pacote.
Assinale a alternativa que apresenta a sequência CORRETA:
A F - V - F - V.
B V - V - V - F.
C V - F - F - V.
D F - F - F - F.
5
A coesão é a característica que faz com que uma classe tenha somente uma responsabilidade dentro do sistema, o que faz com que
a sua correção, em caso de erros ou a manutenção em caso de evolução, seja simplificada. No que se refere à coesão de uma classe,
assinale a alternativa CORRETA:
A Se uma classe tiver uma e somente uma responsabilidade, a probabilidade de esta sofrer manutenção diminui.
B Tanto a coesão quanto o encapsulamento são obtidos na linguagem de programação Java através do modificador de acesso private.
C Uma classe coesa é, necessariamente, uma classe com alto acoplamento.
D A coesão, embora seja uma característica importante, não auxilia o encapsulamento de uma classe.
O 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, a seguir, e classifique V para as sentenças verdadeiras e F para as falsas:
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); 
 }
 
}
( ) A classe em questão não apresenta problemas de sintaxe.
( ) O método competirPor(int pais) está gerando erro de sintaxe e usa incorretamente a palavra-chave void.
( ) O método competirPor(int pais)possui um retorno de tipo definido.
( ) O método "competir(String modalidade)" não gera erro de sintaxe e usa a palavra-chave abstract corretamente.
Assinale a alternativa que apresenta a sequência CORRETA:
A F - F - F - F.
B F - F - V - V.
C V - V - V - V.
D V - F - V - V.
O encapsulamento ajuda a diminuir o acoplamento entre os objetos de um sistema, pois prega que somente o que é absolutamente
necessário deve ser exposto aos demais. Com relação ao encapsulamento, assinale a alternativa CORRETA:
A Um bom cidadão é um objeto que tem todos os valores de seus atributos preenchidos no momento da instanciação.
B Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos atributos.
C Métodos também podem ser ocultados, no sentido de garantir um maior encapsulamento.
D O alto acoplamento é positivo, pois permite que os objetos se comuniquem com mais facilidade.
O 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.
6
7
8
9
( ) 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 - F - V - V.
B F - V - F - V.
C V - V - F - F.
D V - V - F - V.
Uma 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 V - V - V - F.
B F - V - F - F.
C V - F - F - V.
D V - V - F - V.
10

Continue navegando