Prévia do material em texto
Informações da avaliação
Vinicius Guimarães de Souza 1230116661
21_2025_1_IL10311_21ADS5251A
Avaliação 3 - Prova Substituta - 02/05/2025 08:00:00 (Finalizado)
Sala Online / Andar Online / Prédio Online / Polo Online
Total: 9.00 / 10.00
Legenda
Discursiva Objetiva
Questão 1 | 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)
>d)PesoIdeal atleta = new PesoIdeal(1.80, 80.5);
Alternativa marcada
d) PesoIdeal atleta = new PesoIdeal(1.80, 80.5);
Questão 2 | Código 36640 | 1.00 / 1.00
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.
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.
>e)protected int cpf;
Alternativa marcada
e) protected int cpf;
Questão 3 | Código 36633 | 1.00 / 1.00
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):
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.
>b)II.
Alternativa marcada
b) II.
Questão 4 | Código 36874 | 0.00 / 1.00
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.
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 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.
>a)public abstract class Humano {}public class Homem extends Humano {}public class Mulher
extends Humano {}
Alternativa marcada
b) public abstract class Humano {}public abstract Homem extends Humano {}public abstract Mulher
extends Humano {}
Questão 5 | Código 36638 | 1.00 / 1.00
Enunciado
Um desenvolvedor recebeu como tarefa a criação da classe Funcionario, que se relaciona hierarquicamente
com a classe Pessoa, conforme pode ser observado na modelagem a seguir:Determine a opção cujo trecho
de código em Java está implementando a classe Funcionario corretamente:
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 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.
>e)public class Funcionario extends Pessoa { }
Alternativa marcada
e) public class Funcionario extends Pessoa { }
Questão 6 | 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.
>d)Interface.
Alternativa marcada
d) Interface.
Questão 7 | 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.
>a)public final double aco = 0.000011;
Alternativa marcada
a) public final double aco = 0.000011;
Questão 8 | 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) { }
>a)8.
Alternativa marcada
a) 8.
Questão 9 | Código 36632 | 1.00 / 1.00
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:
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.
>e)Protected.
Alternativa marcada
e) Protected.
Questão 10 | Código 36872 | 1.00 / 1.00
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.
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 emuma 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, String n) { }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, 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().
>e)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) { }
Alternativa marcada
e) 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) { }