Baixe o app para aproveitar ainda mais
Prévia do material em texto
19/04/2022 08:47 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6962111/635bad4a-1b32-11eb-b7ab-0636bf709961/ 1/6 Local: Sala 134 - Térreo - Sala de Aula / Andar / Polo Freguesia / POLO FREGUESIA/JACAREPAGUÁ - RJ Acadêmico: EAD-IL10328-20221A Aluno: ANDRE LUIZ DE AZEVEDO SANT ANNA Avaliação: A2- Matrícula: 20204300120 Data: 7 de Abril de 2022 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 7,00/10,00 1 Código: 36610 - Enunciado: "Um identificador é um 'nome' que permite nos dirigirmos especificamente a uma das entidades próprias da linguagem, ou seja, são os nomes que podemos dar aos nossos/as variáveis, métodos, classes, interfaces e objetos."(Disponível em: https://www.devmedia.com.br/introducao-a-linguagem-java/3150. Acesso em: 14 out. 2019). Analise os identificadores a seguir:I. nota_A1II. notaA1III. publicIV. 3notasV. $notas Aponte os identificadores válidos para a linguagem Java: a) III e IV. b) II e V. c) I, II e V. d) I e II. e) I, IV e V. Alternativa marcada: d) I e II. Justificativa: Resposta correta: I, II e V.nota_A1. Correta. Os identificadores só podem começar por: uma letra (maiúscula ou minúscula), um símbolo de: $ ou um símbolo de: _ (underscore).notaA1. Correta. Os identificadores só podem começar por: uma letra (maiúscula ou minúscula), um símbolo de: $ ou um símbolo de: _ (underscore).$notas. Correta. Os identificadores só podem começar por: uma letra (maiúscula ou minúscula), um símbolo de: $ ou um símbolo de: _ (underscore). Distratores:public. Errada. Os identificadores não podem ser palavras reservadas da linguagem.3notas. Errada. Os identificadores não podem começar com letras. 0,00/ 0,50 2 Código: 37084 - Enunciado: O conhecimento das técnicas de desenvolvimento de sistemas baseadas no paradigma de programação orientado a objetos é fundamental para o desenvolvimento de sistemas complexos, facilitando a divisão de tarefas em partes mais simples e fáceis de desenvolver. Sobre programação orientada a objetos, analise as afirmativas a seguir:I. A sobrecarga de operadores é um conceito que só ocorre quando utilizamos um mesmo operador para realizar diferentes tarefas em uma mesma linguagem de programação. II. A sobrecarga de métodos é obtida ao se criar mais de um método com o mesmo nome em uma mesma classe ou classes diferentes e, para isso, é importante que esses métodos possuam as mesmas assinaturas de métodos.III. Métodos construtores podem ser sobrecarregados e seguem as mesmas regras da sobrecarga de métodos. Identifique a(s) afirmativa(s) correta(s): a) II. b) I. c) II e III. d) I e III. e) III. Alternativa marcada: d) I e III. 0,50/ 0,50 19/04/2022 08:47 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6962111/635bad4a-1b32-11eb-b7ab-0636bf709961/ 2/6 Justificativa: Resposta correta: I e III.A sobrecarga de operadores é um conceito que só ocorre quando utilizamos um mesmo operador para realizar diferentes tarefas em uma mesma linguagem de programação. Verdadeira. Uma vez que o conceito de sobrecarga de operadores está ligado quando em uma linguagem de programação, utilizamos um mesmo operador para realizar diferentes tarefas.A sobrecarga de métodos é obtida ao se criar mais de um método com o mesmo nome em uma mesma classe ou classes diferentes e, para isso, é importante que esses métodos possuam as mesmas assinaturas de métodos. Verdadeira. Ressaltando que, como os construtores também são métodos, e em ambos os casos os parâmetros são verificados não de acordo com o identificador, mas sim pela sequência dos tipos (assinatura). Distrator:Métodos construtores podem ser sobrecarregados e seguem as mesmas regras da sobrecarga de métodos. Falsa. Para que haja a sobrecarga de métodos, é necessário que sejam criados métodos com mesmo nome e na mesma classe ou em classes diferentes, mas com assinaturas de métodos diferentes. 3 Código: 36609 - Enunciado: As linguagens de programação trabalham com três diferentes métodos de implementação, que são: compilação, interpretação pura e híbrido. Em relação à linguagem Java, analise as afirmativas a seguir:I. O código é compilado uma vez, gerando o bytecode, que pode ser interpretado quantas vezes forem necessárias e em qualquer ambiente java existente.II. O bytecode é dependente do hardware e so�ware (sistema operacional) do computador onde ocorreu a compilação.III. Atualmente realiza uma compilação just-int-time (no momento da compilação), com o intuito de aumentar o desempenho.IV. O interpretador java também é conhecido como JVM (Java Virtual Machine), que nada mais é do que um so�ware que é capaz de interpretar os bytecodes em um ambiente específico.Está correto o que se afirma em: a) II e IV. b) I e IV. c) II e III. d) III e IV. e) I e III. Alternativa marcada: e) I e III. Justificativa: Resposta correta: I e IV.O código é compilado uma vez, gerando o bytecode, que pode ser interpretado quantas vezes forem necessárias e em qualquer ambiente java existente. Verdadeira. Java gera um código intermediário chamado bytecode, que é um código especial de máquina que não leva em consideração um ambiente específico, mas para um ambiente genérico que independe do ambiente de desenvolvimento.O interpretador java também é conhecido como JVM (Java Virtual Machine), que nada mais é do que um so�ware que é capaz de interpretar os bytecodes em um ambiente específico. Verdadeira. É criado um interpretador Java (JVM) para cada ambiente onde o Java poderá ser executado. Sendo assim, esse interpretador poderá então executar qualquer aplicação Java desenvolvida para ele. Dessa forma, temos uma JVM específica para cada ambiente ou dispositivo específico, mas não podemos esquecer que, uma vez compilado um programa ou aplicação, essa técnica permite que o programa seja executado em qualquer ambiente. Distratores:O bytecode é dependente do hardware e so�ware (sistema operacional) do computador onde ocorreu a compilação. Falsa. O bytecode é uma linguagem de máquina genérica que o processo de compilação da linguagem Java usa para padronizar as aplicações Java, independentemente do ambiente onde ocorreu o processo de compilação.Atualmente realiza uma compilação just-int-time (no momento da compilação), com o intuito de aumentar o desempenho. Falsa. Uma vez que realiza a compilação just-in-time no momento da execução, na etapa do interpretador. 0,00/ 0,50 4 1,50/ 1,50 19/04/2022 08:47 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6962111/635bad4a-1b32-11eb-b7ab-0636bf709961/ 3/6 Código: 36636 - Enunciado: Para o desenvolvimento de uma aplicação utilizando os conceitos de programação orientada a objeto na linguagem Java, considere a classe a seguir:class IMC {String nome;double peso, altura;}Determine, dentre as alternativas, aquela que implementa corretamente o método de acesso que permite recuperar valores atribuídos à propriedade peso, que se encontra armazenada na memória de um objeto. a) public getPeso( ) { return peso; } b) public setPeso(double p) { peso = p; } c) public double getPeso( ) { return peso; } d) public double setPeso( ) { return peso; } e) public getPeso(double peso) { return peso; } Alternativa marcada: c) public double getPeso( ) { return peso; } Justificativa: Resposta correta:public double getPeso( ) { return peso; } O método de acesso que é responsável por recuperar valores é o Getter. Esses métodos nunca recebem parâmetro, uma vez que apenas devem retornar o valor atribuído à propriedade, além disso, devem ser definidos com o mesmo tipo do atributo que irá retornar. Distratores:public getPeso( ). Incorreta. Não foi definido o tipo de retorno, apenas métodos construtoresnão possuem tipo de retorno.public getPeso(double peso). Incorreta. Não definido o tipo de retorno e métodos Getters não recebem parâmetros.public setPeso(double p). Incorreta. Não definido o tipo de retorno e o método é do tipo Setter, que realiza o armazenamento e não o retorno.public double setPeso( ). Incorreta. O método é do tipo Setter, que realiza o armazenamento e não o retorno, além disso, métodos Setters são sempre do tipo void. 5 Código: 36642 - Enunciado: Um desenvolvedor precisa criar uma aplicação financeira para uso com a conversão de valores entre reais e dólares. Sabe-se que o valor do dólar deve ser alterado durante a execução da aplicação, mas de forma que, ao se atualizar esse valor por meio de um objeto, todos os demais sejam atualizados conjuntamente. Para isso, é necessário definir o atributo como compartilhado.Examine as opções de instruções a seguir e determine aquela que permite que seja definido um atributo cujo valor seja compartilhado, ou seja, ao ser atualizado o seu valor, todos os demais objetos criados a partir da classe na aplicação serão atualizados. a) public abstract double dolar = 4.125; b) public static double dolar = 4.125; c) public final double dolar = 4.125; d) public const double dolar = 4.125; e) public double dolar = 4.125; Alternativa marcada: b) public static double dolar = 4.125; Justificativa: Resposta correta: public static double dolar = 4.125;.Um atributo é dito estático quando é compartilhado por todas as instâncias da classe, ou seja, seu conteúdo é compartilhado por todos os objetos criados e, quando um objeto realiza uma alteração, o valor é atualizado em todos os demais. Distratores:public final double dolar = 4.125;. Incorreta. Um atributo é dito final quando o seu valor, após ser inicializado, não pode mais ser alterado durante a execução da aplicação, o seu valor será constante.public double dolar = 4.125;. Incorreta. Um atributo sem modificador pode ser alterado durante a execução da aplicação.public abstract double dolar = 4.125;. Incorreta. Um atributo não pode receber o modificador abstract, que é utilizado apenas com métodos. Um método abstract é aquele que não é implementado em uma classe abstrata ou interface.public const double dolar = 4.125;. Incorreta. O modificador const não faz parte da linguagem Java. 1,50/ 1,50 19/04/2022 08:47 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6962111/635bad4a-1b32-11eb-b7ab-0636bf709961/ 4/6 6 Código: 36639 - Enunciado: Para o desenvolvimento de um projeto de sistema orientado a objetos na linguagem Java, considere o trecho de código a seguir: public class Pessoa { }public class Funcionario extends Pessoa { }public class Supervisor extends Funcionario { } Examine as opções apresentadas e determine a correta: a) A classe Funcionario é superclasse direta de Supervisor. b) A classe Supervisor é superclasse direta de Funcionario e de Pessoa. c) A classe Pessoa é subclasse direta da classe Supervisor. d) A classe Supervisor é subclasse direta tanto de Pessoa como de Funcionario. e) A classe Supervisor é subclasse direta de Pessoa. Alternativa marcada: a) A classe Funcionario é superclasse direta de Supervisor. Justificativa: Resposta correta: A classe Funcionario é superclasse direta de Supervisor.A classe Supervisor herda diretamente da classe Funcionário, ou seja, a classe Funcionario é superclasse direta de Supervisor. Distratores:A classe Pessoa é subclasse direta da classe Supervisor. Incorreta. A classe Pessoa é superclasse direta de Funcionario.A classe Supervisor é superclasse direta de Funcionario e de Pessoa. Incorreta. A classe Pessoa que é a superclasse de Funcionario, que é superclasse de Supervisor.A classe Supervisor é subclasse direta de Pessoa. Incorreta. A classe Supervisor é subclasse direta de Funcionario.A classe Supervisor é subclasse direta tanto de Pessoa, como de Funcionario. Incorreta. A classe Supervisor é subclasse direta de Funcionário. Já a classe Funcionario é subclasse direta de Pessoa. 1,50/ 1,50 7 Código: 36874 - Enunciado: Durante o desenvolvimento de um projeto, verificou-se a necessidade de implementar as classes Humano, Homem e Mulher. Então, o programador identificou que não há por que criarmos objetos Humanos e sim objetos Homens e Mulheres.Compare as possíveis soluções apresentadas a seguir e avalie qual apresenta a correta codificação, de forma que a classe Humano sirva para modelar objetos que possuam características semelhantes, mas que ainda assim tenham comportamento distinto para ações semelhantes. a) public interface Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} b) public abstract Humano {}public class Homem implements Humano {}public class Mulher implements Humano {} c) public abstract class Humano {}public abstract Homem extends Humano {}public abstract Mulher extends Humano {} d) public class Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} e) public abstract class Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} Alternativa marcada: e) public abstract class Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} Justificativa: Resposta correta:public abstract class Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} O conceito a ser aplicado é o de classes abstratas. Uma classe abstrata não pode ser instanciada por meio da palavra chave new com o uso de um construtor seu. As classes Homem e Mulher devem herdar da classe Humano, por isso foi aplicado o conceito extends. As classes Homem e Mulher deverão implementar os métodos abstratos definidos na classe Humano. 2,00/ 2,00 19/04/2022 08:47 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6962111/635bad4a-1b32-11eb-b7ab-0636bf709961/ 5/6 Distratores:public class Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} Incorreta. Como a classe Humano não pode ser instanciada, é preciso aplicar o conceito de classes abstratas e, para isso, utilizamos o termo abstract (antes de class) na definição da classe humano. public abstract class Humano {}public abstract Homem extends Humano {}public abstract Mulher extends Humano {} Incorreta. Como a classe Humano não pode ser instanciada, é preciso aplicar o conceito de classes abstratas. As demais classes (Homem e Mulher) devem herdar da classe Humano e, sendo assim, estas não devem ser definidas como abstract. public interface Humano {}public class Homem extends Humano {}public class Mulher extends Humano {} Incorreta. Como a classe Humano não pode ser instanciada, é preciso aplicar o conceito de classes abstratas, e não o conceito de interface (uma interface Java é uma classe abstrata onde todos os seus métodos são abstract e public e seus atributos são static e final implicitamente. Uma interface é então uma classe completamente abstrata ou classe abstrata pura). public abstract Humano {}public class Homem implements Humano {}public class Mulher implements Humano {} Incorreta. Como a classe Humano não pode ser instanciada, é preciso aplicar o conceito de classes abstratas, mas a classe Humano não possui o modificador class, para determinar que a mesma se trata de uma classe. Já nas classes Homem e Mulher foi aplicado o modificador de interfaces (implements), onde deveria ser aplicado o conceito de herança. 8 Código: 36872 - Enunciado: Durante a implementação de uma classe, o programador decidiu aplicar o conceito de polimorfismo de sobrecarga. Analise a implementação da classe a seguir para obter as informações necessárias para a codificação correta do polimorfismo.class PesoIdeal { String nome, situacao; int idade; double peso, altura;} Compare as possíveis soluções de métodos apresentadas nas alternativas e avalie qual apresenta corretamente a implementação do conceito de polimorfismo de sobrecarga. a) public void cadastroParcial(String n, int i) { }public void cadastroParcial(int i, String n) { }public void cadastroParcial(String n, int i, double p) { }public void cadastroParcial(String n, int i, double p, double a) { } b) public void cadastroParcial1(double p, double a) { }public void cadastroParcial2(double p, int i, double a) { }public void cadastroParcial3(String n, int i, double a) { }public void cadastroParcial4(double a, int i, String n) { } c) public void cadastroParcial(double p, double a, int i) { }public void cadastroParcial(double p, int i, double a) { }public void cadastroParcial(String n, int i, double a) { }public void cadastroParcial(double a, int i, double p) { } d) public void cadastroParcial(String n, int i) { }public void cadastroParcial(String n, double p) { }public void cadastroParcial(String n, double p, double a) { }public void cadastroParcial(String n, double a, double p) { } e) public void cadastroParcial1(String n, int i) { }public void cadastroParcial2(int i, String n) { }public void cadastroParcial3(String n, int i, double p) { }public void cadastroParcial4(String n, int i, double p, double a) { } Alternativa marcada: c) public void cadastroParcial(double p, double a, int i) { }public void cadastroParcial(double p, int i, double a) { }public void cadastroParcial(String n, int i, double a) { }public void cadastroParcial(double a, int i, double p) { } Justificativa: Resposta correta:public void cadastroParcial(String n, int i) { }public void cadastroParcial(int i, String n) { }public void cadastroParcial(String n, int i, double p) { }public void cadastroParcial(String n, int i, double p, double a) { } Assinaturas: cadastroParcial(String, int) { } 0,00/ 2,00 19/04/2022 08:47 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6962111/635bad4a-1b32-11eb-b7ab-0636bf709961/ 6/6 cadastroParcial(int, String) { } cadastroParcial(String, int, double) { } cadastroParcial(String, int, double, double) { } Polimorfismo de sobrecarga de métodos é obtida ao se criar mais de um método com o mesmo nome em uma mesma classe. Para isso, é importante que esses métodos possuam diferentes assinaturas de métodos.Sobrecarga de métodos é obtida ao se criar mais de um método com o mesmo nome em uma mesma classe. Para isso, é importante que esses métodos possuam diferentes assinaturas de métodos. Distratores:public void cadastroParcial1(String n, int i) { }public void cadastroParcial2(int i, String n) { }public void cadastroParcial3(String n, int i, double p) { }public void cadastroParcial4(String n, int i, double p, double a) { } Incorreta. Os métodos não possuem o mesmo nome: cadastroParcial1(), cadastroParcial2(), cadastroParcial3(), cadastroParcial4(). public void cadastroParcial(String n, int i) { }public void cadastroParcial(String n, double p) { }public void cadastroParcial(String n, double p, double a) { }public void cadastroParcial(String n, double a, double p) { } Assinaturas: cadastroParcial(String, int i) { }cadastroParcial(String, double) { }cadastroParcial(String, double, double) { }cadastroParcial(String, double, double) { } Incorreta. Apesar de os métodos possuírem o mesmo nome, as assinaturas não são diferentes. O terceiro e o quarto método possuem a mesma assinatura. public void cadastroParcial(double p, double a, int i) { }public void cadastroParcial(double p, int i, double a) { }public void cadastroParcial(String n, int i, double a) { }public void cadastroParcial(double a, int i, double p) { } Incorreta. Apesar de os métodos possuírem o mesmo nome, as assinaturas não são diferentes. O segundo e o quarto método possuem a mesma assinatura.Assinaturas: cadastroParcial(double, double, int) { }cadastroParcial(double, int, double) { }cadastroParcial(String, int, double) { }cadastroParcial(double, int, double) { } public void cadastroParcial1(double p, double a) { }public void cadastroParcial2(double p, int i, double a) { }public void cadastroParcial3(String n, int i, double a) { }public void cadastroParcial4(double a, int i, String n) { } Assinaturas: cadastroParcial1(double, double) { }cadastroParcial2(double, int, double) { }cadastroParcial3(String, int, double) { }cadastroParcial4(double, int, String) { } Incorreta. Os métodos não possuem o mesmo nome: cadastroParcial1(), cadastroParcial2(), cadastroParcial3(), cadastroParcial4().
Compartilhar