Baixe o app para aproveitar ainda mais
Prévia do material em texto
09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 1/8 Local: Sala 1 - Sala de Aula / Andar / Polo Madureira / POLO MADUREIRA - RJ Acadêmico: EAD-IL10328-20203A Aluno: DAVYSE ANDRADE RODRIGUES Avaliação: A2- Matrícula: 20191302524 Data: 26 de Setembro de 2020 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 9,50/10,00 1 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 abstract double dolar = 4.125; d) public static double dolar = 4.125; e) public final double dolar = 4.125; Alternativa marcada: d) 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,00/ 1,00 2 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) pakage int cpf; b) private int cpf; c) public int cpf; d) protected int cpf; e) int cpf; Alternativa marcada: d) protected int cpf; 1,00/ 1,00 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 2/8 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. 3 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 e III. b) I e III. c) I. d) II. e) III. Alternativa marcada: a) 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. 0,00/ 0,50 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 0,50/ 0,50 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 3/8 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) I e IV. b) II e III. c) II e IV. d) I e III. e) III e IV. Alternativa marcada: a) I 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écnicapermite 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. 5 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} 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 = sc.nextLine(); System.out.println("Nota:"); nota = 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 = Integer.parseInt(sc.nextLine()); System.out.println("Nota:"); nota = Integer.parseInt(sc.nextLine());} d) public void entradaDados ( ){ Scanner sc = new Scanner(System.in); System.out.println("Aluno:"); nomeAluno = nextLine(); System.out.println("Ano:"); ano = 1,50/ 1,50 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 4/8 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 = Double.parseDouble(sc.nextLine());} Alternativa marcada: 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 = 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 tipo inteiro 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 não é inteiro, sendo um tipo real (double). No caso, ambos os atributos foram tratados como inteiros, o que está errado. 6 Código: 36880 - Enunciado: Durante o desenvolvimento de uma aplicação, foram levantados os dados necessários para a realização de uma simulação de contas bancárias. Sabe-se que uma conta possui os seguintes atributos: nrConta, diaAbertura, mesAbertura, anoAbertura, situação (0 – inativa e 1 – Ativa), senha e saldo. Para as contas especiais, além desses atributos, também existe o atributo limiteConta. Já nas contas Poupança, além dos atributos de Contas, também possui os atributos diaAniversario e mesAniversario. Compare as possíveis soluções apresentadas a seguir e avalie qual é a correta para atender à implementação das classes. a) public class Conta { int nrConta, diaAbertura,mesAbertura,anoAbertura,situação,senha; double saldo;} public class Conta extends ContaEspecial { double limite_conta;} public class Conta extends ContaPoupanca { int diaAniversario, mesAniversario;} 1,50/ 1,50 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 5/8 b) public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class ContaEspecial { double limite_conta;} public class ContaPoupanca { int diaAniversario, mesAniversario;} c) public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class ContaEspecial extends Conta { double limite_conta;} public class ContaPoupanca extends Conta { int diaAniversario, mesAniversario;} d) public class Conta { int nrConta, diaAbertura,mesAbertura,anoAbertura,situação,senha; double saldo;} public class ContaEspecial implements Conta { double limite_conta;} public class ContaPoupanca implements Conta { int diaAniversario, mesAniversario;} e) public class Conta { int nrConta, diaAbertura,mesAbertura,anoAbertura,situação,senha; } public class ContaEspecial { double limite_conta, saldo;} public class ContaPoupanca { int diaAniversario, mesAniversario, saldo;} Alternativa marcada: c) public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class ContaEspecial extends Conta { double limite_conta;} public class ContaPoupanca extends Conta { int diaAniversario, mesAniversario;} Justificativa: Resposta correta:public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class ContaEspecial extends Conta { double limite_conta;}public class ContaPoupanca extends Conta { int diaAniversario, mesAniversario;} Para a resolução do problema, é necessário aplicar o conceito de Herança, uma vez que Conta Poupança é um tipo de Conta e Conta Especial é um tipo de Conta, e ambas compartilham atributos comuns com a classe Conta.Para definirmos as subclasses, utilizamos o termo extends – Sintaxe: class <nome da subclasse> extends <nome da superclasse> Distratores: public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class ContaEspecial { double limite_conta;} Incorreta. O conceito de herança deve ser aplicado, pois tanto a ContaEspecial como a ContaPoupança necessitam compartilhar os atributos comuns da classe Conta. public class ContaPoupanca { int diaAniversario, mesAniversario;} Incorreta. A sintaxe do conceito de herança não foi aplicado corretamente. Sintaxe correta: class <nome da subclasse> extends <nome da superclasse>. Nesse caso, superclasse é Conta e as subclasses são: ContaEspecial e ContaPoupanca. public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class Conta extends ContaEspecial { double limite_conta;} public class Conta extends ContaPoupanca { int diaAniversario, mesAniversario;} public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situação, senha; } public class ContaEspecial { double limite_conta, saldo;} public class ContaPoupanca { int diaAniversario, mesAniversario, saldo;} Incorreta. O atributo saldo deve pertencer à classe Conta, uma vez que tanto ContaPoupança quanto ContaEspecial possuem saldo. public class Conta { int nrConta, diaAbertura, mesAbertura, anoAbertura, situacao, senha; double saldo;} public class ContaEspecial implements Conta { double limite_conta;} public class ContaPoupanca implements Conta { int diaAniversario, mesAniversario;} Incorreta. Para resolver o problema propostom é necessário aplicarmos o conceito de herança. Ao definirmos as subclasses, utilizamos o termo extends, e não implements. 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 2,50/ 2,50 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 6/8 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: 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 } public Carro(String tipo, double p ,String m) { super (p , m) ; // reaproveitamento setTipo (tipo) ; } pubic Carro(String tipo ,String m , double p ) { super (m , p ) ; reaproveitamento setTipo ( tipo ) ; } } 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); // 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 7/8 reaproveitamento setTipo(tipo); } public Carro(String tipo, String m, double p) { super(m, p); // reaproveitamento setTipo(tipo); }} 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: 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 de Cordas:" + numeroCordas) ; setNumeroCordas (Integer.parseInt(ent.nextLine ( ) ) ) ; } public void cadastrar (String m,int nc) { setMarca ( m) ; setNumeroCordas (nc) ; } } 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 09/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/5875197/881dcd5c-307e-11e9-848c-0242ac11001f/ 8/8
Compartilhar