Baixe o app para aproveitar ainda mais
Prévia do material em texto
14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 1/7 Local: Sala 1 - TJ - Prova On-line / Andar / Polo Tijuca / POLO UVA TIJUCA Acadêmico: EAD-IL10328-20203A Aluno: PIETRO VINICIUS DA PENHA DE LIMA Avaliação: A2- Matrícula: 20191303393 Data: 26 de Setembro de 2020 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 9,00/10,00 1 Código: 36630 - Enunciado: O conhecimento das técnicas de desenvolvimento de sistemas baseadas no paradigma de programação orientada a objetos é fundamental para o desenvolvimento de sistemas complexos, facilitando a divisão de tarefas em partes mais simples e fáceis de serem desenvolvidas, permitindo que, posteriormente, essas partes sejam agrupadas de forma a resolver problemas que envolvem grandes e complexos sistemas. Em relação aos conceitos de orientação a objetos, analise as afirmativas a seguir:I. Os atributos definem um conjunto de descritores do objeto de forma geral são capazes de realizar as ações necessárias do objeto para o contexto do sistema.II. As classes na programação orientada a objetos são responsáveis por descrever as características e as ações que o objeto poderá realizar.III. Os métodos de acesso Getters são responsáveis por recuperar valores atribuídos às propriedades e que se encontram armazenados na memória de um objeto. Não podem ser do tipo void.IV. Os métodos de acesso Setters são responsáveis por realizar a atribuição e o armazenamento na memória de uma propriedade do objeto. Se necessário, eles podem retornar parâmetros.Identifique as afirmativas corretas: a) I e IV. b) I e III. c) II e IV. d) III e IV. e) II e III. Alternativa marcada: c) II e IV. Justificativa: Resposta correta: II e III.As classes na programação orientada a objetos são responsáveis por descrever as características e as ações que o objeto poderá realizar. Verdadeira. Classe é um conjunto de códigos de programação que definem um modelo para a criação de um ou mais objetos. É uma estrutura capaz de representar diferentes objetos, com propriedades distintas, mas com as mesmas características. A classe é o modelo para a criação dos objetos.Os métodos de acesso Getters são responsáveis por recuperar valores atribuídos às propriedades e que se encontram armazenados na memória de um objeto. Não podem ser do tipo void. Verdadeira. Os métodos Getters nunca são do tipo void, pois sempre retornam um valor, devendo ser do mesmo tipo do atributo que irá retornar. Distratores:Os atributos definem um conjunto de descritores do objeto de forma geral são capazes de realizar as ações necessárias do objeto para o contexto do sistema. Falsa. Os atributos de uma classe são responsáveis por descrever o objeto quanto as suas características, mas não são responsáveis pela realização das ações.Os métodos de acesso Setters são responsáveis por realizar a atribuição e o armazenamento na memória de uma propriedade do objeto. Se necessário, eles podem retornar parâmetros. Falsa. Os métodos Setters são sempre do tipo void, porque nunca devem retornar nada. 0,00/ 0,50 2 Código: 36875 - Enunciado: Durante a implementação de uma classe, o programador decidiu aplicar o conceito de sobrecarga de métodos construtores. Analise a implementação da classe abaixo. (Considere que os métodos Setters e Getters serão implementados corretamente).class PesoIdeal { String nome, situacao; int idade; double peso, altura; public PesoIdeal () { } public PesoIdeal(String n, double p) { setNome(n); setPeso(p); } 1,50/ 1,50 14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 2/7 public PesoIdeal(String n, double p, double a) { setNome(n); setPeso(p); setAltura(a); } public PesoIdeal(double a, double p) { setAltura(a); setPeso(p); }} Compare as possíveis soluções apresentadas a seguir e avalie qual apresenta a correta codificação da criação do objeto atleta. a) PesoIdeal = new atleta(1.80, 80.5); b) PesoIdeal atleta = new PesoIdeal(Paulo,80.5, 1.8) c) Atleta = new PesoIdeal(1.80, 80.5); d) PesoIdeal atleta = new PesoIdeal (“Paulo”, “Sobrepeso”,80.5, 1.8) e) PesoIdeal atleta = new PesoIdeal(1.80, 80.5); Alternativa marcada: e) PesoIdeal atleta = new PesoIdeal(1.80, 80.5); Justificativa: Resposta correta: PesoIdeal atleta = new PesoIdeal(1.80, 80.5);Método construtor: possui o mesmo nome da classe. Sobrecarga de método construtor: métodos com mesmo nome da classe, mas com assinaturas diferentes.Sintaxe para criar objeto: <nome da classe> nome do objeto = new <nome do método construtor>; Está utilizando o quarto método construtor definido na classe PesoIdeal. Distratores:Atleta = new PesoIdeal(1.80, 80.5);. Incorreta. A sintaxe para criar um objeto é: <nome da classe> nome do objeto = new <nome do método construtor>;. Nesse caso, faltou o nome da classe antes da palavra Atleta.PesoIdeal = new atleta(1.80, 80.5);. Incorreta. A sintaxe para criar um objeto é: <nome da classe> nome do objeto = new <nome do método construtor>; Nesse caso, faltou o nome do objeto depois do nome da classe.PesoIdeal atleta = new PesoIdeal(Paulo,80.5, 1.8). Incorreta. O problema está na passagem dos parâmetros do método construtor. Quando temos o tipo de dados String, o mesmo deve ser passado entre aspas – “Paulo”, ou ser o identificador de uma variável do tipo String, que não foi identificada de acordo com a boa prática em desenvolvimento Java.PesoIdeal atleta = new PesoIdeal (“Paulo”, “Sobrepeso”,80.5, 1.8). Incorreta. Não foi implementado na classe PesoIdeal nenhum método com a assinatura: PesoIdeal(String, String, double, double).Assinaturas dos métodos implementados:PesoIdeal ()PesoIdeal(String, double)PesoIdeal(String, double, double)PesoIdeal(double, double) 3 Código: 36638 - Enunciado: Um desenvolvedor recebeu como tarefa a criação da classe Funcionario, que se relaciona hierarquicamente com a classe Pessoa, conforme pode ser observado na modelagem a seguir: Determine a opção cujo trecho de código em Java está implementando a classe Funcionario corretamente: a) public class Pessoa extends Funcionario { } b) public class Funcionario extends Pessoa { } c) public classe Funcionário implements Pessoa { } d) public class Pessoa implements Funcionario { } e) public class Funcionario { } Alternativa marcada: b) public class Funcionario extends Pessoa { } Justificativa: Resposta correta: public class Funcionario extends Pessoa { }.A figura apresenta a aplicação do conceito de herança, onde a classe Funcionario herda da classe Pessoa. Na linguagem Java, a sintaxe para implementar o conceito de herança é: public class <nome da classe “filha”> extends <nome da classe “pai”> { }Nesse caso, a classe “filha” é Funcionario e a classe “mãe” é Pessoa. Distratores:public class Funcionario { }. Incorreta. Essa instrução implementa a classe Funcionário sem o conceito de herança e, como podemos observar na modelagem, a classe Funcionário herda da classe Pessoa. public class Pessoa extends Funcionario { }. Incorreta. Essa instrução, apesar de 1,00/ 1,00 14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 3/7 implementar o conceito de herança, faz uma inversão entre as classes Pai e Filha.public class Pessoa implements Funcionario { }. Incorreta. Essa instrução utiliza o termo implements, que só deve ser usado para interfaces.public classe Funcionário implements Pessoa { }. Incorreta. Essa instrução utiliza o termo implements, que só deve ser usado para interfaces. 4 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) III e IV. b) I e IV. c) II e III. d) I e III. e) II e IV. Alternativa marcada: d) 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 5 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 double getPeso( ) { return peso; } b) public getPeso(double peso) { return peso; } c) public double setPeso( ) { return peso; } d) public setPeso(double p) { peso = p; } e) public getPeso( ) { return peso; } 1,00/ 1,00 14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 4/7 Alternativa marcada: a) 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 construtores nã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. 6 Código: 36879 - Enunciado: Um desenvolvedor precisa implementar os métodos de acesso da classe Treinamento, a qual possui os seguintes atributos: nomeAluno, ano e nota. 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 nota. Lembrando que a nota de um aluno precisa estar entre 0 e 10 para que seja armazenada no atributo; caso contrário, deverá armazenar o valor 0 (zero) no atributo. a) public void setNota(double n) { if(n <= 10) { nota = n; } else { nota = 0; }} b) public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} c) public double setNota(double n) { if(n >= 0 && n <= 10) { return n; } else { return 0; }} d) public void setNota(double n) { if(n >= 0 || n < 10) { nota = n; } else { nota = 0; }} e) public void getNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} Alternativa marcada: b) public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} Justificativa: Resposta correta:public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} O método de acesso usado para realizar a atribuição e o armazenamento na memória de uma propriedade do objeto é o Setter. A nota tem que ser maior igual a 0 e menor ou igual a 10. Para isso, precisamos aplicar uma estrutura condicional if(). Lembrando que o operador lógico E em Java é: &&. Distratores:public double setNota(double n) { if(n >= 0 && n <= 10) { return n; } else { return 0; }} Incorreta. O método Setter não deve retornar valor. Sendo assim, ele deve ser do tipo void, e não double. public void setNota(double n) { if(n <= 10) { nota = n; } else { nota = 0; }} Incorreta. Se a nota for menor que zero, será aceita, uma vez que a condição só verifica se a nota é menor ou igual a 10. public void setNota(double n) { if(n >= 0 || n < 10) { nota = n; } else { nota = 0; }} Incorreta. Não podemos utilizar o operador lógico ou (em Java ||) para esse caso, uma vez que basta uma condição ser verdade para que tudo seja verdade. Nesse caso, se a nota for 11, será armazenada no atributo nota, uma vez que, ao validar n >= 0 (ou seja 11>=0 será Verdade) ou n <=10 (ou seja 11 <= 10 será falso), analisando Verdade OU Falso, o resultado lógico será: Verdade. 1,50/ 1,50 14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 5/7 public void getNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} Incorreta. O método Getter é responsável por recuperar valores atribuídos às propriedades e que se encontram armazenados na memória de um objeto e não devemser usados para atribuições. 7 Código: 36883 - Enunciado: Você faz parte de uma equipe de projeto que precisa desenvolver uma aplicação para a indústria de calçados. A aplicação deve ser criada na linguagem Java seguindo os critérios conceituais da programação orientada a objetos. A equipe é composta por três desenvolvedores, dos quais um deve desenvolver a aplicação, outro a classe Calcado e você deve desenvolver a classe Sapato.A sua tarefa é desenvolver a classe Sapato, conforme a modelagem a seguir: Classe Calcado:Definição dos atributos;Os métodos de acesso dos atributos.Cimco métodos construtores.Métodos: Imprimir, Cadastrar e EntradaDados. Classe Sapato:• Definição dos atributos.• Os métodos de acesso dos atributos.• Cinco métodos construtores.• Métodos: Imprimir e Cadastrar. Desenvolva a codificação na linguagem Java da classe Sapato:Após analisar a situação problema, você deve partir da premissa (certeza) de que a classe Calcado já se encontra pronta e de acordo com os critérios apresentados anteriormente.A classe Sapato deverá reaproveitar ao máximo todos os atributos e métodos disponibilizados pela classe Calcado.A classe Sapato deverá reaproveitar no mínimo um método construtor da classe Calcado.Lembre-se de criar apenas a classe Sapato.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: public class Sapato extends Calcado { private String cor; Scanner scan = new Scanner(System.in); public Sapato(){} public Sapato(String tp){ this.setTipo (tp); } public Sapato(String c){ this.setCor(c); } public Sapato(String tp, int t){ this.setTipo(tp); this.setTamanho(t); } public Sapato(String tp, int t , String c){ this.setTipo(tp); this.setTamanho(t); 2,50/ 2,50 14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 6/7 this.setCor(c); } public void imprimir(){ System.out.println("Tipo: " + this.getTipo()); System.out.println("Tamanho: " + this.getTamanho()); System.out.println("" + this.getCor()); } public void cadastrar(){ System.out.println("Digite o tipo: "); this.setTipo(scan.nextLine()); System.out.println("Digite o Tamanho: "); this.setTamanho(scan.nextInt()); System.out.println("Digite a cor: "); this.setCor(scan.nextLine()); } public void entradaDeDados( String tp , int t , String c){ this.setTipo(tp); this.setTamanho(t); this.setCor(c); } public String getCor(){ return cor; } public void setCor(String c){ this.cor = cor; } } Justificativa: Expectativa de resposta:import java.util.Scanner; public class Sapato extends Calcado{ String cor; public String getCor() { return cor; } public void setCor(String c) { cor = c; } public Sapato() { super(); // Não é obrigatório } public Sapato(String cor) { setCor(cor); } public Sapato(String cor, String tipo) { super(tipo); // reaproveitamento setCor(cor); } public Sapato(String cor, int tamanho, String tipo) { super(tamanho, tipo); // reaproveitamento setCor(cor); } public Sapato(String cor, String tipo, int tamanho) { super(tipo, tamanho); // reaproveitamento setCor(cor); } public void cadastrar(String tipo, int tamanho, String cor) { super.cadastrar(tipo, tamanho); // reaproveitamento setCor(cor); } @Override // Não é obrigatório public void imprimir(){ super.imprimir();// reaproveitamento System.out.println("Cor :" + cor); } } 14/10/2020 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5886381/03bdd744-346d-11e9-9420-0242ac110007/ 7/7 8 Código: 36952 - Enunciado: Encapsulamento é o ato de esconder os membros (atributos e métodos) de uma classe: seja por não serem de interesse por questões de implementação ou por segurança dos dados atribuídos ao objeto. Indique quando deve ser utilizado o modificador de acesso private. Resposta: Modificador private faz com que o método ou atributo fique restrito apenás a própria classe, dessa forma só pode ser acessado na própria classe. Justificativa: Expectativa de resposta:Quando queremos definir que os métodos e atributos de uma classe sejam acessíveis somente por membros da própria classe. 1,50/ 1,50
Compartilhar