Baixe o app para aproveitar ainda mais
Prévia do material em texto
13/10/2021 08:29 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6599172/3d2f8e8e-463a-11ea-ab31-0242ac11000e/ 1/6 Local: 1001 - EAD - Prédio IV / Andar / Campus Comércio Prédio IV / EAD - UNIDADE COMERCIO Acadêmico: 030TDS3AM Aluno: JOSÉ VICTOR CARDOSO DA SILVA Avaliação: A3. Matrícula: 203000032 Data: 1 de Outubro de 2021 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 9,50/10,00 1 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) 6. b) 4. c) 5. d) 8. e) 7. Alternativa marcada: b) 4. 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,00/ 0,50 2 Código: 36632 - 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 o tipo de visibilidade em que os métodos e atributos são acessíveis pelos membros da própria classe e pelas suas subclasses (herança), sendo também acessíveis por outras classes que estejam no mesmo pacote: a) Pakage. b) Extends. c) Public. d) Protected. e) Private. Alternativa marcada: d) Protected. Justificativa: Resposta correta: Protected.O modificador protected deixará visível o atributo para todas as outras classes e subclasses que pertencem ao mesmo pacote. O protected é um intermediário entre public e private. Distratores:Public. Incorreta. A classe, método ou atributo é sempre acessível a todos os métodos de quaisquer outras classes. É o nível mesmo rígido de encapsulamento.Pakage. Incorreta. Também conhecida como omissão ou padrão. A classe, método ou atributo é acessível somente por métodos das classes que pertencem ao mesmo pacote (pakage).Private. Incorreta. A classe é definida como classe de suporte, já métodos e atributos são acessíveis somente por membros da própria classe.Extends. Incorreta. É o termo utilizado para aplicarmos o conceito de herança. 0,50/ 0,50 13/10/2021 08:29 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6599172/3d2f8e8e-463a-11ea-ab31-0242ac11000e/ 2/6 3 Código: 36634 - Enunciado: Na aplicação dos conceitos de programação orientada a objetos na linguagem Java, existe um conceito relacionado à criação de regras (obrigações) que devem ser implementadas em classes.Identifique, entre os conceitos apresentados a seguir, aquele que é responsável por definir regras que devem ser implementadas em uma classe. a) Herança. b) Sobrecarga. c) Sobrescrita. d) Encapsulamento. e) Interface. Alternativa marcada: e) Interface. Justificativa: Resposta correta: Interface.Esse conceito determina a criação de uma classe especial chamada interface, capaz de definir métodos que serão obrigatórios em outras classes, determinando, assim, regras de implementação. Distratores:Herança. Incorreta. Esse conceito é responsável pela determinação de hierarquia entre classes, não determinando implementação de regras para outras classes, mas sim herdando métodos já implementados.Sobrecarga. Incorreta. Esse conceito permite o uso de um mesmo operador para a realização de diferentes tarefas ou mesmo para a criação de métodos com o mesmo nome, mas com diferentes assinaturas de métodos.Sobrescrita. Incorreta. Esse conceito permite o uso de um mesmo método com a mesma assinatura em diferentes classes com relacionamento hierárquico.Encapsulamento. Incorreta. Esse conceito é responsável por controlar o acesso aos membros de uma classe. 0,50/ 0,50 4 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 static double dolar = 4.125; b) public const double dolar = 4.125; c) public final double dolar = 4.125; d) public abstract double dolar = 4.125; e) public double dolar = 4.125; Alternativa marcada: a) 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 13/10/2021 08:29 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6599172/3d2f8e8e-463a-11ea-ab31-0242ac11000e/ 3/6 5 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) public int cpf; b) int cpf; c) pakage int cpf; d) protected int cpf; e) private int cpf; Alternativa marcada: d) 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,50/ 1,50 6 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 observadona modelagem a seguir: Determine a opção cujo trecho de código em Java está implementando a classe Funcionario corretamente: a) public class Pessoa implements Funcionario { } b) public class Pessoa extends Funcionario { } c) public class Funcionario { } d) public class Funcionario extends Pessoa { } e) public classe Funcionário implements Pessoa { } Alternativa marcada: d) 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 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 1,50/ 1,50 13/10/2021 08:29 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6599172/3d2f8e8e-463a-11ea-ab31-0242ac11000e/ 4/6 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. 7 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 double setNota(double n) { if(n >= 0 && n <= 10) { return n; } else { return 0; }} b) public void setNota(double n) { if(n >= 0 || n < 10) { nota = n; } else { nota = 0; }} c) public void getNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} d) public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }} e) public void setNota(double n) { if(n <= 10) { nota = n; } else { nota = 0; }} Alternativa marcada: d) 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. 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 devem ser usados para atribuições. 2,00/ 2,00 8 Código: 37130 - Enunciado: Um desenvolvedor precisa implementar o método entradaDados() na classe Treinamento, implementada a seguir. Considere que os métodos setters e getters serão implementados corretamente. class Treinamento { String nomeAluno; int ano; double nota;// Métodos setters// Métodos getters} 2,00/ 2,00 13/10/2021 08:29 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6599172/3d2f8e8e-463a-11ea-ab31-0242ac11000e/ 5/6 Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação do método entradaDados() da classe, responsável por realizar a entrada de dados por meio do teclado. a) public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine());} b) public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Double.parseDouble(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine());} c) public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = sc.nextLine(); System.out.println("Nota:"); nota = sc.nextLine();} d) public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(nextLine());} e) public void entradaDados (){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Integer.parseInt(sc.nextLine());} Alternativa marcada: a) public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine());} Justificativa: Resposta correta: public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine());} Como os atributos ano e Nota não são String, precisamos realizar a conversão de dados, utilizando Integer.parseInt() para o ano, uma vez que ano é do tipointeiro e Double.parseDouble() para a nota, uma vez que nota não é inteiro, sendo um tipo real (double). Distratores: public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(nextLine());} Incorreta. Faltou identificar o objeto que executará o método nextLine(). Neste caso o objeto sc: (sc.nexLine()). public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Double.parseDouble(sc.nextLine()); System.out.println("Nota:"); nota = Double.parseDouble(sc.nextLine());} Incorreta. O atributo ano é do tipo int. Sendo assim, devemos utilizar a entrada da seguinte forma: Integer.parseInt(sc.nextLine()), ao invés de Double.parseDouble(sc.nextLine()), que é para entrada de valores reais. public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = sc.nextLine(); System.out.println("Nota:"); nota = sc.nextLine();} Incorreta. Como os atributos ano e nota não são do tipo String, há necessidade de convertê-los para os seus respectivos tipos de dados apropriados, utilizando Integer.parseInt() e Double.parseDouble() respectivamente. public void entradaDados (){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = sc.nextLine(); System.out.println("Ano:"); ano = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Integer.parseInt(sc.nextLine());} Como os atributos ano e Nota não são String, precisamos realizar a conversão de dados, utilizando Integer.parseInt() para o ano, uma vez que ano é do tipo inteiro e Double.parseDouble() para a nota, uma vez que nota 13/10/2021 08:29 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6599172/3d2f8e8e-463a-11ea-ab31-0242ac11000e/ 6/6 não é inteiro, sendo um tipo real (double). No caso, ambos os atributos foram tratados como inteiros, o que está errado.
Compartilhar