Baixe o app para aproveitar ainda mais
Prévia do material em texto
• 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 0 em 1 pontos Uma das formas que podemos criar relacionamento entre classes é através da herança. Dependendo do processo realizado para construir esse relacionamento de classes dizemos que é uma generalização ou uma especialização dessas classes. Isso auxilia no reaproveitamento de código de uma superclasse para uma subclasse. Tendo isso em mente, como podem ser definidas as superclasses e as subclasses, respectivamente? Resposta Selecionada: d. Superclasses são menos genéricas e as subclasses mais especializadas. Respostas: a. Superclasses são abstratas e as subclasses são concretas. b. Superclasses são comuns e as subclasses são raras. c. Superclasses são mais utilizadas e as subclasses menos utilizadas. d. Superclasses são menos genéricas e as subclasses mais especializadas. e. Superclasses são genéricas e as subclasses são especializadas. Comentário da resposta: Como existe a hierarquia na estrutura de herança, as superclasses contêm as informações mais comuns, portanto é uma classe mais genérica. Com as informações específicas, as subclasses são chamadas de classes especializadas por se tratar de uma aplicação mais direcionada do objeto. • Pergunta 3 1 em 1 pontos Qual o trecho de código que utiliza o recurso chamado generics da forma correta, ao criar uma lista de objetos da classe Discente? Resposta Selecionada: c. List<Discente>lstDiscente = new ArrayList<>(). Respostas: a. List<Discente>IstDiscente = new ArrayList(). b. List<> lstDiscente = new ArrayList<>(). c. List<Discente>lstDiscente = new ArrayList<>(). d. List lstDiscente = new ArrayList<Discente>(). Comentário da resposta: O parâmetro de tipo deve ser informado na declaração da interface List e a instância do ArrayList precisa informar que ele é Generics também. • Pergunta 4 1 em 1 pontos Uma das técnicas utilizadas para deixar a programação mais flexível é o uso de Generics, quando falamos na linguagem Java. Sobre o uso dessa técnica podemos dizer que: I - A abstração sobre tipos é permitida em classes genéricas, por exemplo as coleções. II - Métodos que introduzem seus próprios parâmetros de tipos são chamados métodos genéricos. Parecido com a declaração de um tipo genérico, porém o escopo é limitado apenas ao método. III - Podem existir métodos genéricos estáticos e construtores de classe genéricos. Contudo, métodos genéricos não estáticos são proibidos. IV - Algumas das vantagens do uso da programação genérica é a simplicidade e a robustez. Dessa forma, não existe a necessidade de casting entre variáveis e o compilador inibe a atribuição de tipos incompatíveis. V - Os parâmetros de tipo de um tipo genérico podem ser ou não limitados. Para restringir esse parâmetro utilizamos do recurso de herança na declaração do parâmetro de tipo. Estão corretas, apenas: Resposta Selecionada: c. I, II, IV, V Respostas: a. I, II, III, IV b. I, II, III, V c. I, II, IV, V d. I, III, IV, V e. II, III, IV, V Comentário da resposta: O Java proíbe o uso de construtores genéricos e métodos estáticos em classes genéricas. • Pergunta 5 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 6 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 7 1 em 1 pontos Em relação aos métodos e classes declarados como “final”, é correto afirmar que: Resposta Selecionada: d. os métodos declarados private não são implicitamente final; Respostas: a. um método declarado final em uma superclasse pode ser sobrescrito em uma subclasse; b. os métodos que são declarados static são implicitamente final; c. uma classe que é declarada final pode ser uma superclasse; d. os métodos declarados private não são implicitamente final; e. nenhum método em uma classe final é implicitamente final. Comentário da resposta: Como o método de privado é acessado apenas pela classe, não é permitido nenhuma sobrescrita dele. Portanto, ele é um método final. • Pergunta 8 1 em 1 pontos Podemos definir uma hierarquia de classes através do uso de herança. Ela permite que uma classe abaixo receba os atributos e métodos da classe diretamente acima dela. Esse é um relacionamento que nos permite estender as capacidades de uma classe, reaproveitando o código da superclasse. Diferente de um relacionamento do tipo de composição. Sendo assim, é correto afirmar que um relacionamento de herança entre A (superclasse) e B (subclasse) é descrito da seguinte maneira: Resposta Selecionada: c. B é um objeto de A. Respostas: a. A é um objeto de B. b. A tem um objeto de B. c. B é um objeto de A. d. B tem um objeto de A. e. A e B são independentes. Comentário da resposta: Sendo B uma extensão de A, é correto afirmar que o objeto B é um objeto de A. • 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 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 daclasse Formulario fica: class Formulario implements Autenticacao, DataValida { // Código da classe } Observando o cenário descrito podemos afirmar que: Resposta Selecionada: 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; 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. Quarta-feira, 30 de Março de 2022 19h52min11s BRT
Compartilhar