Baixe o app para aproveitar ainda mais
Prévia do material em texto
Local: AUDITÓRIO - EAD - Auditório / Andar / Polo Barra da Tijuca / POLO UVA BARRA MARAPENDI - RJ Acadêmico: EAD-IL10311-20194A Aluno: DANIEL FRANCISCO ALVES FELICIANO Avaliação: A2- Matrícula: 20182300254 Data: 22 de Novembro de 2019 - 14:30 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 7,50/10,00 1 Código: 36871 - Enunciado: Um desenvolvedor Java precisa implementar os métodos de acesso da classe Usuário, que possui os seguintes atributos: nomeUsuário, nomeLogin e senha (todos do tipo String).Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação do método que permite realizar a atribuição e o armazenamento na memória da propriedade nomeLogin. Lembrando que o nomeLogin só será atribuído se o texto passado como parâmetro não estiver vazio. a) public void setNomeLogin(n) { if(n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} b) public void setNomeLogin(String n) { nomeLogin = n;} c) public void setNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} d) public void getNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} e) public String setNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} Alternativa marcada: c) public void setNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} Justificativa: Resposta correta: public void setNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} O método de acesso usado para realizar a atribuição e o armazenamento na memória de uma propriedade do objeto é o Setter. Esses métodos são sempre do tipo void, pois não retornam valores.Como existe a restrição de que o atributo não pode ser um texto vazio, é necessário verificar se o parâmetro que o método recebe é vazio – por meio do método isEmpty().isEmpty() – Retorna true se for vazio.Como não queremos que seja um texto vazio, usamos o operador de negação (!). Distratores:public void setNomeLogin(String n) { nomeLogin = n;}Incorreta. Apesar de utilizar o método de acesso Setter, não valida se o parâmetro n está vazio. public void getNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }}Incorreta. O método de acesso Getter é responsável por recuperar da memória os valores atribuídos às propriedades do objeto. Exemplo de utilização do método Getter corretamente:public String getNomeLogin() { return nomeLogin;} (Erro: public String ..... Correto public void ….)public String setNomeLogin(String n) { if(!n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }} Incorreta. O método de acesso Setter não retorna nada. São sempre do tipo void. public void setNomeLogin(n) { if(n.isEmpty()) { nomeLogin = n; } else { System.out.println("valor inválido, não foi atribuído"); }}Incorreta. São encontrados dois erros no método acima:1) Precisamos definir o tipo de dados do parâmetro de entrada: public void setNomeLogin (String n)2) A condição da estrutura condicional está verificando se o parâmetro está vazio e, caso afirmativo, vai armazenar nulo no atributo nomeLogin. Ficou faltando o operador de negação (!) antes de n -- - if( !n.isEmpty()). 1,50/ 1,50 2 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) { } 1,50/ 1,50 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: 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) { } 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) { } 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íremo 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(). 3 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 double dolar = 4.125; b) public const double dolar = 4.125; c) public static double dolar = 4.125; d) public abstract double dolar = 4.125; e) public final double dolar = 4.125; Alternativa marcada: b) public const 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. 0,00/ 1,00 4 Código: 36640 - Enunciado: Durante o desenvolvimento de uma aplicação, notou-se a necessidade de restringir o acesso do atributo cpf, de forma que somente suas subclasses possam acessá-lo. A figura a seguir representa a hierarquia das classes que foram implementadas no mesmo pacote. Examine as opções a seguir, determinando aquela que apresenta corretamente a definição do membro cpf que atenda ao requisito descrito anteriormente. a) protected int cpf; b) pakage int cpf; c) int cpf; d) public int cpf; e) private int cpf; Alternativa marcada: a) protected int cpf; Justificativa: Resposta correta: protected int cpf;.Para se definir que um atributo possa ser acessado por subclasses da classe onde foi declarado, devemos utilizar o conceito de Encapsulamento protected. Distratores:public int cpf;. Incorreta. Métodos ou atributos public são sempre acessíveis por todos os métodos de quaisquer outras classes. É o nível menos rígido de proteção no Encapsulamento.int cpf;. Incorreta. Omissão (pakage ou padrão). A classe, método ou atributo é acessível somente por métodos das classes que pertencem ao mesmo pacote (pakage).pakage int cpf;. Incorreta. O uso de pakage não é permitido na linguagem Java, a definição de Encapsulamento por pacote não requer modificador.private int cpf;. Incorreta. Os métodos e atributos private, são acessíveis somente por membros da própria classe. 1,00/ 1,00 5 Código: 36611 - Enunciado: Considere a classe a seguir:class IMC { String nome; double peso, altura;}Sabe-se que métodos construtores são usados para controlar a criação (instanciação) do objeto e só executam neste momento e que podem ser sobrecarregados. Sendo assim, qual é a quantidade máxima de métodos construtores que podemos criar para a classe IMC? a) 4. b) 5. c) 8. d) 6. e) 7. Alternativa marcada: c) 8. Justificativa: Resposta correta: 8.Métodos construtores podem ser sobrecarregados e seguem a mesma regra da sobrecarga de métodos, os parâmetros são verificados não de acordo com o identificador, mas sim pela sequência dos tipos (Assinatura). Sendo assim, podemos criar os seguintes métodos construtores, totalizando 8 métodos construtores:public IMC() { }public IMC(String) { }public IMC(double) { }public IMC(String, double) { }public IMC(double, String) { }public IMC(String, double, double) { }public IMC(double, String, double) { }public IMC(double, double, String) { } 0,50/ 0,50 6 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) II e III. c) I e III. d) III e IV. e) I e IV. Alternativa marcada: 0,00/ 0,50 d) III e IV. 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.7 Código: 36882 - Enunciado: No desenvolvimento de um projeto de sistema baseado nos conceitos de programação orientada a objetos, um desenvolvedor recebeu como tarefa a criação de uma classe. Sabendo-se que outro desenvolvedor da equipe está criando a classe Veículo, a sua tarefa é desenvolver a classe Carro, conforme a modelagem a seguir: Classe Veiculo:Definição dos atributos.Os métodos de acesso dos atributos.Cinco métodos construtores.Métodos: Imprimir, Cadastrar e EntradaDados. Classe Carro:• Definição dos atributos.• Os métodos de acesso dos atributos.• Cinco métodos construtores. Desenvolva a codificação na linguagem Java da classe Carro, implementando os métodos definidos:Após analisar a situação problema, você deve partir da premissa (certeza) de que a classe Veiculo já se encontra pronta e de acordo com os critérios apresentados anteriormente.A classe Carro deverá reaproveitar ao máximo todos os atributos e métodos disponibilizados pela classe Veiculo.Lembre-se de criar apenas a classe Carro.Utilize a boa prática de programação em Java. Cuidado com o tamanho da letra para que caiba no espaço de resposta. Resposta: Comentários: Os métodos não foram implementados. Justificativa: Expectativa de resposta: import java.util.Scanner; public class Carro extends Veiculo{ String tipo; public String getTipo() { return tipo; } public void setTipo(String t) { tipo = t; } public Carro() { super(); // Não é obrigatório } public Carro(String tipo) { setTipo(tipo); } public Carro(String tipo, String m) { super(m); // reaproveitamento setTipo(tipo); } public Carro(String tipo, double p, String m) { super(p, m); // reaproveitamento setTipo(tipo); } public Carro(String tipo, String m, double p) { super(m, p); // reaproveitamento setTipo(tipo); }} 1,50/ 2,50 8 Código: 36645 - Enunciado: Um desenvolvedor precisa criar uma classe para atender às necessidades de uma aplicação, utilizando os conceitos de programação orientada a objetos implementada na linguagem Java.Considere os atributos a seguir para a classe: ClasseAtributosMétodosViolaoMarca: textoNúmero Cordas: inteiroImprimir (exibe todos os valores dos atributos do objeto).Cadastrar (recebe todos os valores dos atributos e armazena no objeto).EntradaDados (realiza a entrada de dados dos atributos do objeto). Construa a classe Violao, definindo os seus atributos e implementando os métodos solicitados.Utilize a boa prática de programação em Java. Resposta: Justificativa: Expectativa de resposta:public class Violao{String marca;int numeroCordas;public void imprimir(){ System.out.println(“Marca:” + marca); System.out.println(“Número Cordas:” + numeroCordas);}public void entradaDados(){ Scanner ent = new Scanner(System.in); System.out.println(“Marca:”); setMarca(ent.nextLine()); System.out.println(“Número Cordas:” + numeroCordas); setNumeroCordas(Integer.parseInt(ent.nextLine()));}public void cadastrar(String m, int nc){ setMarca(m); setNumeroCordas(nc);}} 1,50/ 1,50 (https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/1d3eef26- 0d5e-11ea-9a43-0242ac110002.jpg? Signature=eZ4KfV4Q%2FyYZzNTUEqRFZTV7Qkc%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNW https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/1d3eef26-0d5e-11ea-9a43-0242ac110002.jpg?Signature=eZ4KfV4Q%2FyYZzNTUEqRFZTV7Qkc%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNWC3PQ https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/1f1de39c-0d5e-11ea-9a43-0242ac110002.jpg?Signature=7g0GlRpt5grHP1zWziRhSl7Kmc0%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNWC3PQ (https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/1f1de39c- 0d5e-11ea-9a43-0242ac110002.jpg? Signature=7g0GlRpt5grHP1zWziRhSl7Kmc0%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNWC3P https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/1f1de39c-0d5e-11ea-9a43-0242ac110002.jpg?Signature=7g0GlRpt5grHP1zWziRhSl7Kmc0%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNWC3PQ (https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/20c23446- 0d5e-11ea-9a43-0242ac110002.jpg? Signature=KuJp%2FmyPjYqCY7iUTKe9vS�cNA%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNW https://strtec.s3.amazonaws.com/ilumno/processamento/imagens_corrigidas/2019/11/22/20c23446-0d5e-11ea-9a43-0242ac110002.jpg?Signature=KuJp%2FmyPjYqCY7iUTKe9vSffcNA%3D&Expires=1574735547&AWSAccessKeyId=AKIAJ5OVDHP63TNWC3PQ
Compartilhar