Baixe o app para aproveitar ainda mais
Prévia do material em texto
22/06/2022 14:48 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6525100/7e699452-01b5-11ec-b283-0242ac11000a/ 1/6 Local: Sala 1 - Sala de Aula / Andar / Polo Duque de Caxias / POLO DUQUE DE CAXIAS - RJ Acadêmico: EAD-IL10328-20213A Aluno: NATÁLIA MORAES DA SILVA MORAES DA SILVA Avaliação: A2- Matrícula: 20202301087 Data: 16 de Setembro de 2021 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 8,50/10,00 1 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 e III. c) III. d) I. e) II e III. Alternativa marcada: b) I 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. 0,50/ 0,50 2 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) 5. b) 4. c) 7. d) 8. e) 6. 0,50/ 0,50 22/06/2022 14:48 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6525100/7e699452-01b5-11ec-b283-0242ac11000a/ 2/6 Alternativa marcada: d) 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) { } 3 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) III. b) I. c) II. d) I e III. e) I e II. Alternativa marcada: c) 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 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. 0,50/ 0,50 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) int cpf; b) protected int cpf; c) private int cpf; d) pakage int cpf; e) public int cpf; 1,50/ 1,50 22/06/2022 14:48 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6525100/7e699452-01b5-11ec-b283-0242ac11000a/ 3/6 Alternativa marcada: b) 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. 5 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 calcular(double val, int qtd, double perc) b) public int calcularVenda(int qtd, double val, double perc) c) public double calcularVenda(double v, double p, int q) d) public int Venda(double val, double perc, int qtd) e) public double calcularVenda(double perc, double val, int qtd) Alternativa marcada: c) 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,50 6 Código: 36949 - Enunciado: Durante o desenvolvimento de uma aplicação em Java, constatou- se a necessidade de se criar um vetor em Java para armazenar as notas dos 30 alunos da turma. Assinale a alternativa que implementa corretamente a criação do vetor, cujo nome é notas. a) double notas[30]; b) double notas[] = new double[30]; c) double notas; d) notas = new double[30]; e) double = new notas[30]; Alternativa marcada: 1,50/ 1,50 22/06/2022 14:48 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6525100/7e699452-01b5-11ec-b283-0242ac11000a/ 4/6 b) double notas[] = new double[30]; Justificativa: Resposta correta: double notas[] = new double[30];.Para declararmos um vetor em Java, podemos utilizar a sintaxe a seguir: <tipo> <nome>[] = new <tipo> [<num_elementos>]; Distratores:double notas[] = {2.5, 10.0, 6.0}. Incorreta. Criou um vetor notas e já inicializou-o com três notas.double = new notas[30];. Incorreta. Faltou o nome do vetor e o seu tamanho é definido com o seu tipo de dados.notas = new double[30];. Incorreta. Faltou definir o tipo de dados antes do nome do vetor.double notas;. Incorreta. Está declarando uma variável chamada notas do tipo double. 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 abstract Humano {}public class Homem implements Humano {}public class Mulher implements Humano {} b) public abstract class Humano {}public abstract Homem extends Humano {}public abstract Mulher extends Humano {} c) public interface Humano {}public class Homem extends Humano {}public class 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. 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 2,00/ 2,00 22/06/2022 14:48 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6525100/7e699452-01b5-11ec-b283-0242ac11000a/ 5/6 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 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(String n, double p) { }public void cadastroParcial(String n, double p, double a) { }public void cadastroParcial(String n, double a, double p) { } 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(int i, String n) { }public void cadastroParcial(String n, int i, double p) { }public void cadastroParcial(String n, int i, double p, double a) { } e) 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) { } Alternativa marcada: d) 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, Stringn) { }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, 2,00/ 2,00 22/06/2022 14:48 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6525100/7e699452-01b5-11ec-b283-0242ac11000a/ 6/6 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