Buscar

Programação Orientada a Objetos - Avaliação II

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 (Cod.:)
Peso da Avaliação
1,50
Qtd. de Questões
10
Acertos/Erros
9/1
Nota
9,00
Encapsular, basicamente, significa ocultar. No caso específico do Java, são marcados com modificadores de visibilidade os atributos, métodos
ou classes que desejamos encapsular. São quatro os modificadores de visibilidade da linguagem de programação Java. Considerando esses
modificadores, assinale a alternativa INCORRETA:
A Protected: este modificador indica que o método será visível na subclasse de um relacionamento de herança.
B
Public: fornece acesso dentro da aplicação onde estiver declarado, no caso de classes, atributos ou métodos. Quando marcamos uma
classe como public, queremos dizer que esta será visível a todas as demais classes da aplicação.
C
Default: o modificador default é implementado simplesmente não colocando nenhum modificador na frente da classe, atributo ou
método.
D Private: fornece acesso somente dentro da classe onde estiver declarado, no caso de atributos ou métodos.
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 classes que elas
referenciam. Com relação às classes criadas no código-fonte, assinale a alternativa CORRETA: 
 
(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)}
A
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).
 VOLTAR
A+ Alterar modo de visualização
1
2
B
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!!).
C
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!!).
D Não existe polimorfismo implementado entre as classes do código-fonte apresentado.
A própria API do Java implementa a herança em diversos locais. Nas APIs descritas a seguir, assinale a alternativa INCORRETA:
A MessageFormat, ChoiceFormat e SimpleDateFormat.
B TextFormat, MessageFormat e ChoiceFormat.
C NumberFormat, DateFormat e DecimalFormat.
D Format, NumberFormat e SimpleDateFormat.
A herança, juntamente ao encapsulamento, o polimorfismo e a abstração, representa um dos pilares da programação orientada a objetos e
pode, quando bem modelada e utilizada, diminuir o esforço na manutenção do código-fonte. Considerando o relacionamento de herança entre
duas ou mais classes, classifique V para as sentenças verdadeiras e F para as falsas: 
 
( ) A herança possibilita o compartilhamento de atributos entre uma superclasse subclasse, limitando esse compartilhamento para os
atributos indicados com o modificador "private". 
( ) A palavra-chave extends define que uma classe está estendendo outra, que em outras palavras significa o uso de herança na linguagem de
programação Java. 
( ) A herança possibilita o compartilhamento de métodos entre uma superclasse subclasse, limitando esse compartilhamento para alguns
tipos especiais de métodos. 
( ) A herança de métodos é possível, porém os métodos construtores podem ser reescritos através do polimorfismo. 
 
Assinale a alternativa que apresenta a sequência CORRETA:
A V - F - F - V.
B F - V - F - F.
C F - F - V - V.
D V - V - V - F.
Quando uma classe herda de outra, ela herda implementação, atributos e comportamento. Isso significa que todos os métodos e atributos
disponíveis na interface externa da classe mãe estarão também na interface externa da filha. Uma classe construída através de herança pode ter
alguns métodos e atributos. Sobre eles, assinale a alternativa INCORRETA:
A Orientado: com herança de implementação, atributos e comportamento.
B Novo: a nova classe adiciona um método ou atributo completamente novo.
C Sobreposto: a nova classe herda o método da progenitora, mas fornece uma nova definição.
D Recursivo: a nova classe simplesmente herda um método ou atributo da classe mãe.
Diz-se que no paradigma da orientação a objetos, os objetos podem criar relações entre si, e duas maneiras de se estabelecer uma relação
entre objetos são através da associação e da herança que devem ser utilizados na solução de problemas diferentes. Dessa forma, sobre esses
relacionamentos, assinale a alternativa CORRETA:
A Uma associação não permite o compartilhamento de métodos e de atributos entre classes.
B Nos relacionamentos de associação, o conceito de subclasse é utilizado de maneira diferente do que nos relacionamentos de herança.
3
4
5
6
C Os dois tipos de relacionamento são implementados na linguagem de programação Java através de palavras reservadas.
D Um relacionamento que responde de maneira positiva à pergunta "é um tipo de" representa uma associação ou uma herança.
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: 
 
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 erro de sintaxe e não usa corretamente a palavra-chave void. 
III- O método competirPor(int pais) não gera erros de sintaxe, e 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 III e IV estão corretas.
B As sentenças I e III estão corretas.
C As sentenças II e III estão corretas.
D As sentenças II e IV estão corretas.
Em uma aplicação Java orientada a objetos, um Analista precisa criar um tipo de classe que não pode ser instanciada diretamente e que deve
possuir um conjunto de atributos privados, um construtor, métodos getter e setter, métodos implementados que deseja que várias subclasses
compartilhem, e assinatura de métodos que deseja obrigar as subclasses a implementar de maneiras diferentes. 
Assinale a alternativa CORRETA que apresenta o tipo de classe que o Analista deverá criar:
A Interface.
B Classe abstrata.
C Classe estática.
D Classe concreta.
A sobrecarga de métodos, considerada um tipo de polimorfismo, é um mecanismo que permite que dois ou mais métodos compartilhem
o mesmo nome, contanto que tenham diferentes conjuntos de parâmetros. Dessa forma, com o código-fonte apresentado, referente à classe
Bicicleta, analise as sentenças a seguir sobre a correta sintaxe aplicada ao polimorfismo de sobrecarga para os dois métodos construtores da
referidaclasse: 
 
public class Bicicleta{ 
7
8
9
private char tamanhoQuadro; 
private int numeroMarchas; 
private char tamanhoRoda; 
 
public void movimentar(){ 
System.out.println("O objeto bike está em movimento!!"); 
} 
} 
 
I- 
public Bicicleta(char tamanhoQuadro, int numeroMarchas){ 
this.tamanhoQuadro = tamanhoQuadro; 
this.numeroMarchas = numeroMarchas; 
} 
 
public Bicicleta(){ 
this.tamanhoQuadro = tamanhoQuadro; 
this.numeroMarchas = numeroMarchas; 
} 
 
II- 
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ 
this.tamanhoQuadro = tamanhoQuadro; 
this.numeroMarchas = numeroMarchas; 
this.tamanhoRoda = tamanhoRoda; 
} 
public Bicicleta(){ 
} 
 
III- 
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ 
this.tamanhoQuadro = tamanhoQuadro; 
this.numeroMarchas = numeroMarchas; 
this.tamanhoRoda = tamanhoRoda; 
} 
 
public Bicicleta(int numeroMarchas, char tamanhoRoda){ 
this.tamanhoQuadro = tamanhoQuadro; 
this.numeroMarchas = numeroMarchas; 
this.tamanhoRoda = tamanhoRoda; 
} 
 
IV- 
public Bicicleta(int numeroMarchas){ 
this.numeroMarchas = numeroMarchas; 
} 
public Bicicleta(char tamanhoQuadro, int numeroMarchas){ 
this.tamanhoQuadro = tamanhoQuadro; 
this.numeroMarchas = numeroMarchas; 
} 
 
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 III e IV estão corretas.
D As sentenças II e IV estão corretas.
Aprendemos que a classe abstrata não pode ser instanciada, servindo basicamente como um aglutinador de comportamentos e atributos
comuns a subclasses. Alguns detalhes devem ser observados sobre os métodos abstratos. A respeito deles, assinale a alternativa
INCORRETA:
A Nas subclasses, a marcação de que determinado método está sendo sobrescrito ou sobreposto ocorre através de uma Annotation.
B Métodos abstratos requerem definições abstratas.
C Métodos abstratos somente podem ser definidos em classes abstratas.
D Uma classe abstrata pode ter quantos métodos concretos (não abstratos) e abstratos forem necessários.
10

Continue navegando