Buscar

Modificadores de Acesso e Polimorfismo em Java

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 8 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

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 6, do total de 8 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

26/06/2023, 18:55 Avaliação II - Individual
about:blank 1/8
Prova Impressa
GABARITO | Avaliação II - Individual (Cod.:825701)
Peso da Avaliação 1,50
Prova 66141414
Qtd. de Questões 10
Acertos/Erros 8/2
Nota 8,00
Os modificadores de acesso possuem o objetivo de tornar classes, métodos ou atributos visíveis 
ou invisíveis, facilitando o seu encapsulamento. Com estes modificadores, podemos, por exemplo, 
liberar o acesso de um atributo de uma classe X por uma classe Y. Analise o código-fonte a seguir e 
classifique V para as sentenças verdadeiras e F para as falsas: 
( ) O método "getCodigo()"da classe "Carro" é visível em todas as classes do pacote.
( ) O método "getCodigo()"da classe "Carro" é visível somente na subclasse de um relacionamento 
de herança.
( ) O método "getValor()"da classe "Carro" é visível somente na subclasse de um relacionamento de 
herança.
( ) O método "getModelo()"da classe "Carro" é visível somente dentro da própria classe "Carro".
Assinale a alternativa que apresenta a sequência CORRETA:
A F - F - V - V.
B F - V - F - F.
C V - V - F - F.
D V - V - V - F.
 VOLTAR
A+ Alterar modo de visualização
1
26/06/2023, 18:55 Avaliação II - Individual
about:blank 2/8
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, 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 I e III estão corretas.
B As sentenças II e IV estão corretas.
C As sentenças I e II estão corretas.
D As sentenças III e IV estão corretas.
2
26/06/2023, 18:55 Avaliação II - Individual
about:blank 3/8
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. Sobre esses relacionamentos, analise as 
sentenças a seguir:
I- Quando um relacionamento de associação é estabelecido entre duas ou mais classes, significa que 
os objetos dessas classes estão relacionados, de alguma maneira, no mundo real.
II- Nos relacionamentos de associação, o conceito de superclasse é utilizado de maneira diferente do 
que nos relacionamentos de herança.
III- Os relacionamentos do tipo "associação" são implementados na linguagem de programação Java 
através das palavras reservadas "associate to".
IV- Um relacionamento que responde de maneira positiva à pergunta "é um tipo de" representa uma 
herança.
Assinale a alternativa CORRETA:
A As sentenças II e IV estão corretas.
B As sentenças I e III estão corretas.
C As sentenças I e IV estão corretas.
D As sentenças II e III estão corretas.
Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década 
de 90 por uma equipe de programadores. Observe a figura anexa que ilustra uma situação típica em 
que podemos aplicar o conceito de herança de classes em Java. Considerando os conceitos de 
programação orientada a objetos, analise as sentenças a seguir:
I- A classe FormaGeometrica, indicada pela letra A, é considerada a subclasse das classes contidas na 
área indicada pela letra B.
II- Quadrado é uma classe filha da classe FormaGeometrica.
III- A classe Triangulo implementa a interface FormaGeometrica. 
3
4
26/06/2023, 18:55 Avaliação II - Individual
about:blank 4/8
Agora, assinale a alternativa CORRETA:
A As sentenças I e II estão corretas.
B Somente a sentença II está correta.
C Somente a sentença I está correta.
D As sentenças II e III estão corretas.
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 "Competidor" e 
classifique V para as sentenças verdadeiras e F para as falsas:
(1) package fontes;
(2) public class Competidor{
(3) private int pais;
(5) private String modalidade;
(6) private boolean medalistaOlimpico;
(7)
(8) public void competir(String modalidade){
(9) System.out.println("É especialista em " + modalidade);
(10) }
(11) 
(12) public abstract void competirPor(int pais){
5
26/06/2023, 18:55 Avaliação II - Individual
about:blank 5/8
(13) System.out.println("O atleta compete por " + pais); 
(14) }
(15) 
(16)}
( ) Existe um erro de sintaxe na linha (2) que é resolvido adicionando-se a palavra-chave "abstract", 
antes da palavra chave "Class".
( ) O método "competir(String modalidade)" está gerando um erro de sintaxe, e adicionando a 
palavra chave "abstract", antes da palavra-chave "void", resolverá o erro gerado.
( ) O método "competirPor(int pais)" está gerando um erro de sintaxe, resolvido eliminando-se a 
sua implementação, deixando-se apenas a sua assinatura.
( ) O método "competirPor(int pais)" está gerando um erro de sintaxe, e adicionando a palavra-
chave abstract, antes da palavra- chave "Class", além de eliminar a sua implementação, deixando-se 
apenas a sua assinatura, resolverá o erro gerado.
Assinale a alternativa que apresenta a sequência CORRETA:
A V - V - V - F.
B F - F - V - V.
C V - F - F - V.
D V - V - F - V.
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, e a correta 
sintaxe aplicada ao polimorfismo de sobrecarga para os dois métodos construtores da referida classe, 
classifique V para as sentenças verdadeiras e F para as falsas:
public class Bicicleta{
private char tamanhoQuadro;
private int numeroMarchas;
private char tamanhoRoda;
public void movimentar(){
System.out.println("O objeto bike está em movimento!!");
}
}
( )
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
this.tamanhoRoda = tamanhoRoda;
}
public Bicicleta(char tQuadro, int nMarchas){
this.tamanhoQuadro = tQuadro;
this.numeroMarchas = nMarchas;
}
6
26/06/2023, 18:55 Avaliação II - Individual
about:blank 6/8
( )
public Bicicleta(intnumeroMarchas, char tamanhoRoda, char tamanhoQuadro){
this.numeroMarchas = numeroMarchas;
this.tamanhoQuadro = tamanhoQuadro;
this.tamanhoRoda = tamanhoRoda;
}
public Bicicleta(char roda){
this.tamanhoRoda = roda;
}
( )
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){
this.tamanhoQuadro = tamanhoQuadro;
this.tamanhoRoda = tamanhoRoda;
}
public Bicicleta(char tamanhoQuadro, int numeroMarchas){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
this.tamanhoRoda = tamanhoRoda;
}
( )
public Bicicleta(){
this.numeroMarchas = numeroMarchas;
}
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){
}
Assinale a alternativa que apresenta a sequência CORRETA:
A V - F - F - V.
B V - V - F - F.
C F - V - V - F.
D F - V - F - V.
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.
7
26/06/2023, 18:55 Avaliação II - Individual
about:blank 7/8
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 - F.
A linguagem de programação Java permite a definição de classes abstratas, que representam 
ferramentas poderosas na definição de relacionamentos de herança e, consequente, reutilização e 
extensão de estado e comportamento. Com relação às classes abstratas da linguagem de programação 
Java, classifique V para as sentenças verdadeiras e F para as falsas:
( ) Uma classe abstrata somente pode ser instanciada a partir de um construtor abstrato.
( ) Uma classe abstrata não pode possuir métodos concretos.
( ) Os métodos concretos de uma classe abstrata podem ser reutilizados, sem alteração em suas 
subclasses.
( ) Em uma hierarquia de herança, a primeira classe abstrata deve prover implementação para os 
métodos abstratos.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A V - V - F - F.
B F - F - V - F.
C V - V - F - V.
D V - F - F - V.
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 - V - F - V.
B V - V - V - F.
C V - F - F - V.
8
9
26/06/2023, 18:55 Avaliação II - Individual
about:blank 8/8
D F - F - V - V.
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 A interface exposta de uma classe, se alterada para privada, encapsulada, não requer cuidado
para os métodos chamadores.
B Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento.
C O encapsulamento permite a instância de uma classe em memória.
D O encapsulamento evita que alguma entidade externa altere os valores dos atributos de um
objeto indevidamente.
10
Imprimir

Continue navegando