Baixe o app para aproveitar ainda mais
Prévia do material em texto
08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 1/7 Local: Sala 1 - Sala de Aula / Andar / Polo Niterói - Região Oceânica / POLO REGIÃO OCEÂNICA Acadêmico: EAD-IL10328-20203A Aluno: MARCO ANTONIO LIMA DE CASTRO Avaliação: A2- Matrícula: 20191301364 Data: 26 de Setembro de 2020 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 5,50/10,00 1 Código: 36637 - Enunciado: Durante o desenvolvimento de uma aplicação na linguagem Java, com os conceitos de programação orientada a objetos, foi implementado o método a seguir: public double calcularVenda(double val, double perc, int qtd) { ............. } Determine o uso de polimorfismo de sobrecarga de métodos que está sendo aplicado de forma correta: a) public double calcularVenda(double v, double p, int q) b) public double calcularVenda(double perc, double val, int qtd) c) public int calcularVenda(int qtd, double val, double perc) d) public int Venda(double val, double perc, int qtd) e) public double calcular(double val, int qtd, double perc) Alternativa marcada: a) public double calcularVenda(double v, double p, int q) Justificativa: Resposta correta: public double calcularVenda(double perc, double val, int qtd)A 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.Esse método possui o mesmo nome do método original e possui uma assinatura diferente. Distratores:public int Venda(double val, double perc, int qtd). Incorreta. Não possui o mesmo nome do método original.public double calcular(double val, int qtd, double perc). Incorreta. Não possui o mesmo nome do método original.public double calcularVenda(double v, double p, int q). Incorreta. Esse método possui o mesmo nome, mas está incorreto porque tem a mesma assinatura do método original.public double calcularVenda(double perc, double val, int qtd). Incorreta. Esse método possui o mesmo nome, mas está incorreto porque tem a mesma assinatura do método original. 0,00/ 1,00 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) III. b) I. c) II. d) I e III. e) II e III. 0,00/ 0,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 2/7 Alternativa marcada: e) II e III. 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: 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 getPeso( ) { return peso; } d) public setPeso(double p) { peso = p; } e) public double setPeso( ) { return peso; } 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. 1,00/ 1,00 4 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); } 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. 0,00/ 1,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 3/7 a) Atleta = new PesoIdeal(1.80, 80.5); b) PesoIdeal atleta = new PesoIdeal(1.80, 80.5); c) PesoIdeal atleta = new PesoIdeal(Paulo,80.5, 1.8) d) PesoIdeal atleta = new PesoIdeal (“Paulo”, “Sobrepeso”,80.5, 1.8) e) PesoIdeal = new atleta(1.80, 80.5); Alternativa marcada: c) PesoIdeal atleta = new PesoIdeal(Paulo,80.5, 1.8) 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 classePesoIdeal. 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) 5 Código: 36633 - Enunciado: "A interface é muito utilizada em grandes projetos para obrigar o programador a seguir o padrão do projeto, por esta tratar-se de um contrato em que é obrigado a implementar seus métodos, ele deverá sempre seguir o padrão de implementação da interface."(Disponível em: https://www.devmedia.com.br/java-interface-aprenda-a-usar-corretamente/28798. Acesso em: 26 out. 2019.) Em relação aos conceitos de interfaces Java, analise as seguintes afirmativas:I. Uma interface é uma classe totalmente abstrata e seus métodos devem ser abstract e private.II. Em uma interface os seus atributos devem ser static e final.III. Uma classe é restrita a implementar uma única interface. Identifique a(s) afirmativa(s) correta(s): a) I e II. b) I. c) III. d) I e III. e) II. Alternativa marcada: e) II. Justificativa: Resposta correta: II.Em uma interface os seus atributos devem ser static e final. Verdadeiro. Em uma interface todos os atributos definidos são implicitamente static e final, não sendo necessário que sejam formalmente modificados. Distratores:Uma interface é uma classe totalmente abstrata e seus métodos devem ser abstract e private. Falsa. Numa interface, todos os métodos são 0,50/ 0,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 4/7 implicitamente abstract e public, métodos definidos em interfaces não podem ser private.Uma classe é restrita a implementar uma única interface. Falsa. Uma classe pode implementar mais de uma interface, sendo permitido o uso conjunto de múltiplas interfaces em uma mesma classe. 6 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 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) { } b) 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) { } c) 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) { } d) 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) { } e) 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) { } Alternativa marcada: e) 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) { } 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í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 0,00/ 1,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 5/7 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(). 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: package Calcado; import java.util.Scanner; public class Sapato extends Calcado { //atributo private String cor; // getters and setters public String getCor() { return cor; } public void setCor(String cor) { this.cor = cor; } //Construtores da Superclasse Calcado public String Tipo() { return super.getTipo(); } 2,50/ 2,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 6/7 public int tamanho() { return super.getTamanho(); } //Construtores da Subclasse Sapato public Sapato() { } public Sapato(String cor) { this.cor = cor; } //entrada de dados public void entradaDados() { Scanner sc = new Scanner(Syystem.in); super.entradaDados(); System.out.print("Digite a cor.........: "); setCor(sc.nextLine()); } //saída de dados public void imprimir() { super.imprimir(); System.out.println("Cor.........: + getCor()"); } Comentários: //Construtores da Superclasse Calcado --> ??????????????? Não tinha isso ! public String Tipo() { return super.getTipo(); } public int tamanho() { return super.getTamanho(); } 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 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5876239/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 7/7 setCor(cor); } @Override // Não é obrigatório public void imprimir(){ super.imprimir();// reaproveitamento System.out.println("Cor :" + cor); } } 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: Quando os métodos e atributos devem ser acessíveis somente por membros da própria classe, já que restringe a visibilidade do membro modificado. 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