Buscar

Programação Orientada a Objeto(IL10311) - A3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

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.

Continue navegando