Baixe o app para aproveitar ainda mais
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.
Compartilhar