Buscar

quiz POO-3

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 17 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 17 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 9, do total de 17 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

Prévia do material em texto

Pergunta 1 
1 em 1 pontos 
 
Um dos recursos da programação Orientada a Objetos utilizada para proteger dados de 
acessos externos à classe é o encapsulamento. Porém, existem vários níveis desse 
tipo de proteção e são representados pelos modificadores de acesso. 
Qual o modificador de acesso que protege seus dados de acesso externo, mas permite 
que classes provenientes de herança possam acessar e manipular seu dado? 
 
Resposta Selecionada: c. 
protected 
Respostas: a. 
public 
 b. 
private 
 c. 
protected 
 d. 
internal 
 e. 
void 
Comentário da 
resposta: 
O modificador de acesso protected age como um private, porém 
permite acesso das classes filhas aos seus dados. 
 
 
• Pergunta 2 
0 em 1 pontos 
 
Na classe Boletim, um professor pode tanto inserir uma nota ao aluno, quanto 
consultar sua nota. Mas o aluno pode, apenas, consultar sua nota. 
Escolha a opção que representa a situação acima, levando em consideração o 
conceito de encapsulamento: 
 
Resposta Selecionada: b. 
public class Boletim { 
private float nota; 
 
public void setNota (float nota) { 
nota = nota; 
} 
 
public double getNota () { 
return nota; 
} 
 
} 
 
Respostas: a. 
public class Boletim { 
float nota; 
 
public void setNota (float nota) { 
this.nota = nota; 
} 
 
public float getNota () { 
return nota; 
} 
 
} 
 
b. 
public class Boletim { 
private float nota; 
 
public void setNota (float nota) { 
nota = nota; 
} 
 
public double getNota () { 
return nota; 
} 
 
} 
 
c. 
public class Boletim { 
private float nota; 
 
public void setNota (float nota) { 
this.nota = nota; 
} 
 
public float getNota () { 
return this.nota; 
} 
 
} 
 
d. 
public class Boletim { 
private float nota; 
 
public void getNota (float nota) { 
this.nota = nota; 
} 
 
public float setNota () { 
return nota; 
} 
 
} 
 
e. 
public class Boletim { 
public float nota; 
 
public void setNota (float nota) { 
this.nota = nota; 
} 
 
public float getNota () { 
return this.nota; 
} 
 
} 
Comentário da 
resposta: 
O trecho de código está de acordo com os conceitos de 
encapsulamento e manipulação de dados por meio dos métodos get 
e set. 
 
• Pergunta 3 
1 em 1 pontos 
 
Ao implementar classes genéricas precisamos determinar uma variável que receberá o 
parâmetro de tipo durante a declaração. Essa variável é representada por uma letra 
maiúscula e seguem uma convenção determinada na documentação do Java. Quais as 
letras utilizadas para representar chave e valor em tipos genéricos? 
 
Resposta Selecionada: e. 
K e V. 
Respostas: a. 
C e V. 
 b. 
K e E. 
 c. 
T e E. 
 
 d. 
K e T. 
 e. 
K e V. 
Comentário 
da resposta: 
Existe uma convenção nas letras que utilizamos para cravar os tipos de 
dados genéricos em Java. A biblioteca Java utiliza a letra E para o tipo 
de elemento em uma coleção, K e V para o conjunto de chave e valor, 
respectivamente. As letras T, U e S para quaisquer outros tipos. 
 
• Pergunta 4 
0 em 1 pontos 
 
Quanto ao uso de Generics na linguagem de programação Java 1.5 ou superiores, é 
correto afirmar que: 
 
Resposta 
Selecionada: 
c. 
quando o compilador traduz um método genérico em bytecode Java, 
ele remove a seção de parâmetro de tipo e substitui por tipos reais. 
Esse processo é conhecido como Erasure. 
Respostas: a. 
os métodos genéricos permitem que programadores especifiquem, 
com várias declarações semelhantes de métodos, um conjunto de 
métodos polimórficos relacionados, onde são diferentes os parâmetros 
esperados por cada implementação de métodos dentro da mesma 
classe. 
 
b. 
todas as declarações de métodos genéricos têm uma seção de 
parâmetro de tipo delimitado por colchetes angulares ( < e > ) que 
precede o tipo de retorno do método. Além disso, os nomes de 
parâmetros de tipo precisam ser únicos entre os diferentes métodos 
genéricos da mesma classe. 
 
c. 
quando o compilador traduz um método genérico em bytecode Java, 
ele remove a seção de parâmetro de tipo e substitui por tipos reais. 
Esse processo é conhecido como Erasure. 
 
d. 
a tecnologia de Generics permite escrever classes genéricas, onde 
todos os métodos contidos nesta classe são genéricos, exigência esta 
que é avaliada em tempo de execução para bytecode Java. 
 e. 
 
uma classe não genérica pode ser derivada de uma classe genérica. 
Isto se dá devido à especificação de Polimorfismo do modelo 
Orientado a Objetos. 
Comentário da 
resposta: 
Métodos genéricos foram feitos para minimizar a quantidade de 
sobrecarga de métodos. 
 
• Pergunta 5 
1 em 1 pontos 
 
Os métodos construtores são chamados no momento da inicialização de um objeto e 
possuem algumas características. 
Indique a alternativa correta sobre as características de um método construtor. 
 
Resposta 
Selecionada: 
c. 
Possuem o mesmo nome de sua classe e podem ter parâmetros. 
Respostas: a. 
Devem ter o mesmo nome da sua classe, porém não possuem 
parâmetros. 
 
b. 
O nome pode ser qualquer um, mas devem ser chamados com o 
comando new. 
 c. 
Possuem o mesmo nome de sua classe e podem ter parâmetros. 
 
d. 
São chamados pela instrução new, mas devem ser encapsulados 
com o modificador de acesso private. 
 
e. 
O método construtor não é obrigatório na instância e inicialização 
de um objeto. 
Comentário da 
resposta: 
O método construtor tem como principal característica possuir o 
mesmo nome de sua classe. Podem ter parâmetros como qualquer 
método. 
 
 
• Pergunta 6 
1 em 1 pontos 
 
Verifique os métodos construtores abaixo: 
 
A. public Boletim(){ 
} 
 
B. public Boletim(int a, float b){ 
Nota = b; 
 
Frequencia = a; 
} 
 
Se quisermos inicializar as variáveis de instância do objeto B (do tipo Boletim) com os 
valores zero para nota e zero para frequência, devemos utilizar a instrução: 
 
I. Boletim B = new Boletim(); 
II. Boletim B = new Boletim(0,0); 
III. Boletim B = new Boletim(“zero”,”zero”); 
 
Escolha a alternativa correta que resolve o problema apresentado: 
Resposta Selecionada: e. 
I e II estão corretas. 
Respostas: a. 
Somente I está correto. 
 b. 
Somente II está correto. 
 c. 
I e III estão corretas. 
 d. 
II e III estão corretas. 
 e. 
I e II estão corretas. 
Comentário da 
resposta: 
Ambas as formas de zerar as variáveis de instância do objeto B 
estão corretas. O construtor padrão (vazio e sem parâmetro) faz 
exatamente isso. 
 
 
• Pergunta 7 
1 em 1 pontos 
 
Além de relacionamentos com classes através da herança, podemos criar 
relacionamentos com outros tipos de recursos da programação orientada a objetos, 
uma interface. Para vincular esse relacionamento devemos acrescentar a interface 
junto a uma palavra reservada. Qual a palavra reservada utilizada para associar uma 
interface a uma classe? 
 
Resposta Selecionada: e. 
implements. 
Respostas: a. 
extends. 
 b. 
protected. 
 
 c. 
interface. 
 d. 
final. 
 e. 
implements. 
Comentário da 
resposta: 
Uma interface é implementada por um objeto/classe, portanto 
utiliza-se a palavra reservada implements. 
 
• Pergunta 8 
1 em 1 pontos 
 
Analise a sobrecarga dos métodos abaixo:in 
 
public void A (float a, int b){} 
public void A (String a, int b){} 
public void A (float a, String b){} 
 
Escolha a opção correta se precisarmos chamar o método A e passar o nome de um 
aluno e sua média (considere o nome do objeto Aluno). 
 
Resposta Selecionada: b. 
Aluno.A(7.3, “João”); 
Respostas: a. 
Aluno.A(“João”, 7.3); 
 b. 
Aluno.A(7.3, “João”); 
 c. 
Aluno(7.3, “João”); 
 d. 
Aluno.A(João, 7); 
 e. 
Aluno(“João”, 7); 
Comentário da 
resposta: 
A chamada ao método está correta e a passagem de parâmetros está 
na ordem certa, além de obedecer às regras corretamente, como 
passar um nome entre aspas e um número decimalcom ponto (.) 
 
 
• Pergunta 9 
0 em 1 pontos 
 
Na linguagem Java, toda classe é subclasse de alguma outra. Porém, existe a 
possibilidade de uma classe não possuir filhas. Para tanto, basta que a definição de tal 
classe possua a palavra reservada: 
 
Resposta Selecionada: c. 
extends; 
Respostas: a. 
final; 
 b. 
super; 
 c. 
extends; 
 d. 
implements; 
 e. 
this. 
Comentário da 
resposta: 
Uma classe final é constante, não pode ser alterada, assim toda 
classe final não pode ser extendida. 
 
 
• Pergunta 10 
0 em 1 pontos 
 
Considere a declaração das interfaces abaixo escritas em Java: 
 
interface Autenticacao { 
 boolean valida(String valor); 
} 
 
interface DataValida { 
 String valida(LocalDate valor); 
} 
 
Em um determinado momento do programa foi criado um formulário que precisa estar 
autenticado para cadastrar datas de entrega no sistema. A implementação da classe 
Formulario fica: 
 
class Formulario implements Autenticacao, DataValida { 
 // Código da classe 
} 
 
Observando o cenário descrito podemos afirmar que: 
 
Resposta 
Selecionada: 
d. 
no corpo da classe Formulario, o método valida deverá ser definido 
apenas uma vez, com a assinatura prevista na declaração da interface 
DataValida, mencionada em último lugar na cláusula implements da 
declaração da classe Formulario; 
 
Respostas: a. 
no corpo da classe Formulario, o método valida deverá ser definido 
pelo menos duas vezes, sendo que uma definição corresponderá à 
assinatura prevista na declaração da interface Autenticacao e a outra 
definição corresponderá à assinatura prevista na declaração da 
interface DataValida; 
 
b. 
no corpo da classe Formulario, o método valida deverá ser definido 
apenas uma vez e a assinatura será uma escolha do programador, 
podendo ser a prevista na declaração da interface Autenticacao ou a 
prevista na declaração da interface DataValida; 
 
c. 
no corpo da classe Formulario, o método valida deverá ser definido 
apenas uma vez, com a assinatura prevista na declaração da interface 
Autenticacao, mencionada em primeiro lugar na cláusula implements 
da declaração da classe Formulario; 
 
d. 
no corpo da classe Formulario, o método valida deverá ser definido 
apenas uma vez, com a assinatura prevista na declaração da interface 
DataValida, mencionada em último lugar na cláusula implements da 
declaração da classe Formulario; 
 
e. 
haverá um erro em tempo de compilação, assinalando ao programador 
a impossibilidade de a classe Formulario implementar 
simultaneamente as duas interfaces. 
Comentário da 
resposta: 
Uma classe que implementa uma interface precisa implementar todos 
os métodos. Sendo assim é possível implementar métodos com o 
mesmo nome, mas diferente da assinatura, isso chama-se sobrecarga 
de método. 
 
 
Tempo decorrido 39 minutos 
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários 
• Pergunta 1 
1 em 1 pontos 
 
Ao implementar classes genéricas precisamos determinar uma variável que receberá o 
parâmetro de tipo durante a declaração. Essa variável é representada por uma letra 
maiúscula e seguem uma convenção determinada na documentação do Java. Quais as 
letras utilizadas para representar chave e valor em tipos genéricos? 
 
Resposta Selecionada: e. 
K e V. 
Respostas: a. 
C e V. 
 b. 
K e E. 
 c. 
T e E. 
 d. 
K e T. 
 e. 
K e V. 
Comentário 
da resposta: 
Existe uma convenção nas letras que utilizamos para cravar os tipos de 
dados genéricos em Java. A biblioteca Java utiliza a letra E para o tipo 
de elemento em uma coleção, K e V para o conjunto de chave e valor, 
respectivamente. As letras T, U e S para quaisquer outros tipos. 
 
• Pergunta 2 
1 em 1 pontos 
 
Verifique os métodos construtores abaixo: 
 
A. public Boletim(){ 
} 
 
B. public Boletim(int a, float b){ 
Nota = b; 
Frequencia = a; 
} 
 
Se quisermos inicializar as variáveis de instância do objeto B (do tipo Boletim) com os 
valores zero para nota e zero para frequência, devemos utilizar a instrução: 
 
I. Boletim B = new Boletim(); 
II. Boletim B = new Boletim(0,0); 
III. Boletim B = new Boletim(“zero”,”zero”); 
 
Escolha a alternativa correta que resolve o problema apresentado: 
 
Resposta Selecionada: e. 
I e II estão corretas. 
Respostas: a. 
Somente I está correto. 
 
 b. 
Somente II está correto. 
 c. 
I e III estão corretas. 
 d. 
II e III estão corretas. 
 e. 
I e II estão corretas. 
Comentário da 
resposta: 
Ambas as formas de zerar as variáveis de instância do objeto B 
estão corretas. O construtor padrão (vazio e sem parâmetro) faz 
exatamente isso. 
 
• Pergunta 3 
1 em 1 pontos 
 
A forma mais segura e adequada de manipular variáveis na programação orientada a 
objetos é utilizando os métodos de acesso e os métodos modificadores. 
Quais comandos demonstram esses métodos, respectivamente? 
 
Resposta Selecionada: a. 
Get e set. 
Respostas: a. 
Get e set. 
 b. 
Construtor e main. 
 c. 
Set e get. 
 d. 
Main e get. 
 e. 
Construtor e set. 
Comentário da 
resposta: 
Os métodos de acesso são também conhecidos como get e os 
métodos modificadores são também conhecidos como set. 
 
 
• Pergunta 4 
1 em 1 pontos 
 
Uma interface, no contexto de desenvolvimento de sistemas orientados a objetos, pode 
ser interpretada como um dispositivo de fronteira, pois define a maneira de 
comunicação entre duas entidades e a abstração de fronteira pode ser entendida como 
uma forma de interação da entidade com o mundo exterior. De acordo com a 
linguagem Java, analise as afirmativas a respeito de interfaces. 
I. As interfaces são classes abstratas, completamente não implementadas. 
 
II. A classe que implementa uma interface precisa fornecer uma implementação para 
todos os métodos na interface. 
III. Para que uma determinada classe seja vista como uma implementação de uma 
interface na linguagem Java, faz-se necessário indicar na declaração da classe a 
palavra reservada Extends. 
IV. Uma classe pode implementar apenas uma interface para evitar a herança 
múltipla, pois é de difícil implementação na linguagem Java. 
Resposta Selecionada: c. 
I e II. 
Respostas: a. 
I e IV. 
 b. 
II e III 
 c. 
I e II. 
 d. 
II e IV. 
 e. 
I e III. 
Comentário da 
resposta: 
Toda vez que uma classe implementa uma interface, é necessário 
preencher as informações lógicas dos métodos, sendo assim todos os 
métodos de uma interface devem ser implementados. 
 
 
• Pergunta 5 
1 em 1 pontos 
 
Na linguagem Java, toda classe é subclasse de alguma outra. Porém, existe a 
possibilidade de uma classe não possuir filhas. Para tanto, basta que a definição de tal 
classe possua a palavra reservada: 
 
Resposta Selecionada: a. 
final; 
Respostas: a. 
final; 
 b. 
super; 
 c. 
extends; 
 d. 
implements; 
 
 e. 
this. 
Comentário da 
resposta: 
Uma classe final é constante, não pode ser alterada, assim toda 
classe final não pode ser extendida. 
 
• Pergunta 6 
1 em 1 pontos 
 
Analise o código da classe abaixo: 
 
public class A{ 
private int a; 
private String b; 
private boolean c; 
 
public void setB(String b){ 
this.b = b; 
} 
 
public void setC(boolean c){ 
this.c = c; 
} 
 
public void setA(int a){ 
this.a = a; 
} 
 
public int getA(){ 
return this.a; 
} 
 
public String getB(){ 
return this.b; 
} 
 
public boolean getC(){ 
return this.c; 
} 
 
} 
 
O que será impresso na tela, depois de rodarmos o seguinte código do método main? 
 
A a = new A(); 
 
a.setA(1); 
system.out.println(a.getA() + “\n” + a.getB() + “\n” + a.getC()); 
Resposta Selecionada: d. 
1 
Null 
false 
Respostas: a. 
0 
0 
0 
 
b. 
1 
0 
0 
 
c. 
1 
Null 
true 
 
d. 
1 
Null 
false 
 
e. 
0 
Nullfalse 
Comentário da 
resposta: 
O construtor inicializou as variáveis de instância do objeto a com os 
valores zero para a, null para b e false para c. Em seguida inserimos o 
valor 1 em a e imprimimos os valores das variáveis a, b e c na ordem 
(pulando uma linha). 
 
 
• Pergunta 7 
1 em 1 pontos 
 
Ao criar uma classe devemos definir seus atributos (variáveis), seus métodos (funções) 
e os construtores. 
Se, por acaso, não construirmos o método construtor de uma classe o que acontece 
quando vamos fazer a instância de um objeto dessa classe? 
 
Resposta 
Selecionada: 
b. 
O compilador cria um método construtor padrão vazio e sem 
parâmetros. 
 
Respostas: a. 
Não conseguimos fazer a instância nesse caso. 
 
b. 
O compilador cria um método construtor padrão vazio e sem 
parâmetros. 
 c. 
O compilador entende que o objeto não precisa ser inicializado. 
 
d. 
Um erro de sintaxe é acusado pelo compilador quando tentarmos 
rodar o código. 
 
e. 
O compilador cria um método construtor com parâmetros 
aleatórios. 
Comentário 
da resposta: 
Quando não criamos o método construtor o compilador cria um método 
construtor padrão, porém estará vazio e não irá possuir parâmetros. 
Dessa forma, as variáveis de instância do objeto serão inicializadas 
zeradas, para os tipos numéricos, null, para cadeias de caracteres e 
false, para os tipos booleanos. 
 
• Pergunta 8 
1 em 1 pontos 
 
A execução do código Java mostrado abaixo produzirá qual resultado? 
public class Questao { 
static int q1; 
int q2; 
static { q1=9 ;} 
{ q2 = 3; } 
 
void troca() 
{ 
q1=q2 ; 
} 
public static void main(String[] args) { 
Questao x=new Questao(); 
Questao y=new Questao(); 
x.q2=5; 
x.troca(); 
System.out.print(x.q1+" "+x.q2+" "+y.q1+" "+y.q2); 
} 
} 
 
Resposta Selecionada: a. 
5 5 5 3. 
Respostas: a. 
5 5 5 3. 
 b. 
9 3 5 3. 
 c. 
5 3 5 3. 
 d. 
3 5 9 3. 
 e. 
5 5 9 3. 
Comentário da 
resposta: 
Como q1 é um atributo estático, ao modificá-lo alteramos o valor 
para todas as instâncias da classe. 
 
 
• Pergunta 9 
1 em 1 pontos 
 
Além de relacionamentos com classes através da herança, podemos criar 
relacionamentos com outros tipos de recursos da programação orientada a objetos, 
uma interface. Para vincular esse relacionamento devemos acrescentar a interface 
junto a uma palavra reservada. Qual a palavra reservada utilizada para associar uma 
interface a uma classe? 
 
Resposta Selecionada: e. 
implements. 
Respostas: a. 
extends. 
 b. 
protected. 
 c. 
interface. 
 d. 
final. 
 e. 
implements. 
Comentário da 
resposta: 
Uma interface é implementada por um objeto/classe, portanto 
utiliza-se a palavra reservada implements. 
 
 
• Pergunta 10 
1 em 1 pontos 
 
Em muitos casos, uma superclasse é apresentada como uma classe abstrata, forçando 
a instância de um objeto através de uma subclasse. Nesse processo, existem 
situações onde a reescrita de alguns métodos é obrigatória. Assim, garantimos que o 
código estará pronto para uso quando instanciarmos um objeto declarado pela classe 
abstrata. Pensando nesse cenário, a pergunta que fazemos é por que classes abstratas 
não podem ser instanciadas? 
 
Resposta Selecionada: a. 
São classes incompletas. 
Respostas: a. 
São classes incompletas. 
 b. 
São classes compiladas. 
 c. 
Não existe. 
 d. 
Não são usadas. 
 e. 
Só possuem atributos privados. 
Comentário da 
resposta: 
Em geral, classes abstratas são utilizadas em conjunto com métodos 
abstratos que possuem apenas a declaração sem o corpo. Sendo 
assim, são classes que necessitam de implementações extras ou 
incompletas.

Continue navegando