Prévia do material em texto
Horário oficial: Horário de Brasília — 09:22
Informações da avaliação
MANUELLA ANDREZA MARINS PINHEIRO HIPOLITO 1240102115
21_2025_2_IL10311_21ADS4252A
Avaliação 3 - Prova Substituta - 04/10/2025 08:00:00 (Finalizado)
Sala Online / Andar Online / Prédio Online / Polo Online
Total: 10.00 / 10.00
Legenda
Discursiva Objetiva
Questão 1 | Código 44115 | 1.00 / 1.00
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:
Justificativa
Resposta correta:public int calcularVenda(int qtd, double val, double perc)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 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 calcular(double val, int qtd, double perc). Incorreta. Não possui o mesmo nome
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.
>e)public int calcularVenda(int qtd, double val, double perc)
Alternativa marcada
e) public int calcularVenda(int qtd, double val, double perc)
Questão 2 | Código 36641 | 1.00 / 1.00
Enunciado
Um estudante está desenvolvendo uma aplicação para realização de cálculos físicos, onde necessita definir
o valor do coeficiente de dilatação linear do aço, que é de 11*10-6. Sabendo-se que esse valor é constante
em toda a aplicação.Examine as opções de instruções a seguir e determine aquela que permite que seja
definido um atributo cujo valor seja constante, ou seja, o seu valor, após ser inicializado, não poderá mais
ser alterado durante a execução da aplicação para o coeficiente de dilatação do aço.
Justificativa
Resposta correta:public final double aco = 0.000011;.Um atributo é dito final quando o seu valor, após ser
inicializado, não poderá mais ser alterado durante a execução da aplicação, o seu valor será
constante.Distratores:public static double aco = 0.000011;. Incorreta. 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.public double aco = 0.000011;. Incorreta. Um atributo sem modificador pode ser alterado
durante a execução da aplicação.public abstract double aco = 0.000011;. 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 aco = 0.000011;. Incorreta. O
modificador const não faz parte da linguagem Java.
>d)public final double aco = 0.000011;
Alternativa marcada
d) public final double aco = 0.000011;
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 1/7
Horário oficial: Horário de Brasília — 09:22
Questão 3 | Código 37084 | 1.00 / 1.00
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):
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.
>e)I e III.
Alternativa marcada
d) II e III.
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 2/7
Horário oficial: Horário de Brasília — 09:22
Questão 4 | Código 36879 | 1.00 / 1.00
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.
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.
>d)public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0;
}}
Alternativa marcadad) public void setNota(double n) { if(n >= 0 && n <= 10) { nota = n; } else { nota = 0; }}
Questão 5 | Código 36634 | 1.00 / 1.00
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.
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.
>e)Interface.
Alternativa marcada
e) Interface.
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 3/7
Horário oficial: Horário de Brasília — 09:22
Questão 6 | Código 36875 | 1.00 / 1.00
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.
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 classe PesoIdeal.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)
>e)PesoIdeal atleta = new PesoIdeal(1.80, 80.5);
Alternativa marcada
e) PesoIdeal atleta = new PesoIdeal(1.80, 80.5);
Questão 7 | Código 36611 | 1.00 / 1.00
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?
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) { }
>e)8.
Alternativa marcada
e) 8.
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 4/7
Horário oficial: Horário de Brasília — 09:22
Questão 8 | Código 36635 | 1.00 / 1.00
Enunciado
Durante o desenvolvimento de uma aplicação, foi implementada a classe Atividade, a qual possui os
atributos: Nome, Carga horária, Descrição. Determine, dentre as opções a seguir, aquela que criará o objeto
Expo corretamente.
Justificativa
Resposta correta:Atividade Expo = Atividade();A sintaxe para a criação de um objeto é:<nome da
Classe> < nome do objeto> = new <método construtor>;Onde: método construtor é o método
com o mesmo nome da Classe.Sendo assim, a alternativa correta é: Atividade Expo = Atividade(); Onde
Atividade é o nome da classe, Expo é o nome do objeto e Atividade()é o método
construtor.Distratores:Atividade = new Atividade();.Incorreta.Não identificou o nome do objeto que será
instanciado.Atividade = new Expo();.Incorreta.O objeto não é um método (Expo()).Expo Atividade = new
Expo();.Incorreta.O aluno inverteu a sintaxe do comando, Primeiro é o nome da Classe e depois o nome do
objeto.new Expo = Atividade ();. Incorreta.Faltou identificar qual a classe que o objeto vai instanciar.
>a)Atividade Expo = Atividade();
Alternativa marcada
e) Expo Atividade = new Expo();
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 5/7
Horário oficial: Horário de Brasília — 09:22
Questão 9 | Código 37130 | 1.00 / 1.00
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.
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.
>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 =
Double.parseDouble(sc.nextLine());}
Alternativa marcada
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 =
Double.parseDouble(sc.nextLine());}
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 6/7
Horário oficial: Horário de Brasília — 09:22
Questão 10 | Código 36642 | 1.00 / 1.00
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.
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.
>c)public static double dolar = 4.125;
Alternativa marcada
c) public static double dolar = 4.125;
01/07/2026, 09:22 Impressão da prova
https://aluno.provafacilnaweb.com.br/#/finished-tests/1148361/print 7/7