Buscar

AO2_ Programação Orientada a Objetos

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 19 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 19 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 9, do total de 19 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

Prévia do material em texto

11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 1/19
AO2
Entrega 16 jun em 23:59 Pontos 6 Perguntas 10
Disponível 7 jun em 0:00 - 16 jun em 23:59 10 dias Limite de tempo Nenhum
Instruções
Este teste não está mais disponível, pois o curso foi concluído.
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 9.251 minutos 5,4 de 6
 As respostas corretas estão ocultas.
Pontuação deste teste: 5,4 de 6
Enviado 15 jun em 22:42
Esta tentativa levou 9.251 minutos.
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que
você clique em "FAZER O QUESTIONÁRIO", no final da página.
0,6 / 0,6 ptsPergunta 1
Leia o texto a seguir:
 
O compilador verifica cada chamada de método e declaração de
método para determinar se ele lança uma exceção verificada. Se sim,
o compilador checa se a exceção verificada é capturada ou é
declarada em uma cláusula throws — isso é conhecido como requisito
“capture ou declare” (catch-or-declare). Lembre-se de que a cláusula
throws especifica as exceções que um método lança. Tais exceções
não são capturadas no corpo do método. Para satisfazer a parte
capture do requisito capture ou declare, o código que gera a exceção
https://famonline.instructure.com/courses/12596/quizzes/42409/history?version=1
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 2/19
deve ser empacotado em um bloco try e fornecer uma rotina de
tratamento catch para o tipo de exceção verificada (ou uma de suas
superclasses). Para satisfazer a parte declare do requisito capture ou
declare, o método contendo o código que gera a exceção deve
fornecer uma cláusula throws contendo o tipo de exceção verificada
depois de sua lista de parâmetros e antes do corpo do método. Se o
requisito “capture ou declare” não for atendido, o compilador emitirá
uma mensagem de erro.
 
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017, p. 356. Adaptado.
 
Considerando as informações apresentadas, analise as afirmações
abaixo:
 
I. Se um método “A” chama um método “B” que lança exceções, “A”
deve necessariamente as capturar.
 
II. Como exceções podem ser capturadas ou lançadas, uma exceção
não tratada não provocará erro, desde que seja lançada por todos os
métodos na pilha.
 
III. Um método não é obrigado a capturar uma exceção, desde que ele
a lance.
 
IV. Um método não é obrigado a lançar uma exceção, desde que ele a
capture.
 
Estão corretas as afirmações:
 I, II e IV, apenas. 
 II, III e IV, apenas. 
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 3/19
 I e II, apenas. 
 I e III, apenas. 
 III e IV, apenas. 
Alternativa correta.
As afirmações III e IV estão corretas: pelo princípio do “capture ou
declare”, um método precisa apenas capturar ou lançar cada
exceção, não os dois. Qualquer uma das ações estará correta do
ponto de vista daquele método. Por esse motivo, a afirmação I
está incorreta: não faz diferença se uma exceção ocorreu
diretamente dentro de um método ou se ela foi lançada por outro
método que foi chamado dentro daquele método. Ela continua
podendo ser ou capturada ou lançada novamente.
Porém, em algum momento a exceção deverá ser capturada. Se
todos os métodos na pilha forem apenas lançando a exceção, em
algum ponto acabarão as funções da pilha. Como uma exceção é
um erro previsto e tratável, se nenhuma função a tratou, o
programa apresentará erro (na compilação ou na execução,
dependendo do tipo de exceção). Por isso a afirmação II também
está incorreta.
0,6 / 0,6 ptsPergunta 2
Analise o código abaixo:
 
void foo (Automovel a) {
 a.locomocao();
}
void bar () {
 Conversivel c = new Conversivel();
 foo(c);
}
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 4/19
 
Sabendo que Conversivel é subclasse de Automovel, analise as
afirmações abaixo sobre o código:
 
I. Na função bar, c é um Automovel.
 
II. Na função foo, a é um Conversivel.
 
III. No método bar, o método sendo chamado na primeira linha é
determinado em tempo de compilação.
 
IV. No método foo, o método sendo chamado na primeira linha é
determinado em tempo de compilação.
 
São corretas as afirmações:
 I e III, apenas. 
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 5/19
Alternativa correta.
Pelo princípio do polimorfismo, uma subclasse também é objeto
da superclasse. Como Conversivel é subclasse de Automovel,
todo objeto Conversivel é, necessariamente, objeto de Automovel
também, portanto a afirmação I está correta.
A relação inversa não é válida: um objeto Automovel não
necessariamente é um objeto Conversivel. Tratar um objeto
Automovel como Conversivel provocará erros, ou seja, a
afirmação II está incorreta.
Construtores são específicos de cada classe. Classes filhas
devem ter seus próprios construtores, mesmo que eles chamem
internamente o super(), isso quer dizer que, naquela linha, é
possível determinar já em tempo de compilação qual o construtor
a ser utilizado: será necessariamente o construtor específico de
Conversivel cujos parâmetros batam com os passados (no caso,
deve ser um construtor sem parâmetros). Isso é o que chamamos
de polimorfismo estático, o que conclui a afirmação III como
correta.
A função foo recebe um objeto Automovel. Esse objeto pode ser
um Automovel puro ou pode ser objeto de classe herdeira. Nas
classes herdeiras o método pode ter sido sobreposto. Como em
diferentes pontos do código a função foo pode ser chamada
recebendo objetos de diferentes subclasses, apenas durante a
sua execução será possível determinar qual versão do método
locomocao (o original ou uma das possíveis sobreposições) será
utilizado. Isso é o que chamamos de polimorfismo dinâmico, ou
seja, a afirmação IV está incorreta.
 II e III, apenas. 
 I e II, apenas. 
 III e IV, apenas. 
 II e IV, apenas. 
0,6 / 0,6 ptsPergunta 3
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 6/19
Leia o texto a seguir:
 
Uma nova classe de objetos pode ser criada convenientemente por
meio de herança — ela (chamada subclasse) começa com as
características de uma classe existente (chamada superclasse),
possivelmente as personalizando e adicionando aspectos próprios. Na
nossa analogia do carro, um objeto da classe “conversível” decerto é
um objeto da classe mais geral “automóvel”, mas, especificamente, o
teto pode ser levantado ou baixado.
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017, pp. 9-10.
 
Considerando a analogia acima, assinale a alternativa correta:
 
O método para levantar ou abaixar o teto existe em “automóvel” e pode
ser usado diretamente em “conversível” por herança.
 
O método para levantar ou abaixar o teto existe em “automóvel”, mas
deve ser sobrecarregado.
 
O método para levantar ou abaixar o teto existe em “automóvel”, mas
deve ser sobreposto.
 
O método para levantar ou abaixar o teto não existe em “automóvel”,
mas pode ser criado em “conversível”.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 7/19
Alternativa correta.
Segundo o texto, como “conversível” é uma classe mais
específica do que “automóvel”, mas também é “automóvel”,
podemos concluir que “conversível” é subclasse de “automóvel”,
ou seja, é classe herdeira de “automóvel”. O texto também diz
que algo específico da classe “conversível” é a capacidade de
abaixar ou levantar o teto. Isso indica que estamos falando de
uma capacidade que existe na subclasse, ou classe filha, e não
existe na superclasse, ou classe mãe. Portanto, é algoque não é
herdado e deve ser implementado diretamente pela classe filha.
Sobreposição seria reescrever algo que já foi herdado, e
sobrecarga seria fornecer múltiplas implementações diferentes, e
nenhum deles se aplica neste caso.
 
O método para levantar ou abaixar o teto existe em “automóvel”, mas
só poderá ser usado em “conversível” se for protected ou public.
0,6 / 0,6 ptsPergunta 4
Leia o texto a seguir:
 
A maioria das declarações de variável de instância é precedida pela
palavra-chave private. Da mesma forma que public, private é um
modificador de acesso. As variáveis ou métodos declarados com o
modificador de acesso private só são acessíveis a métodos da classe
em que isso ocorre.
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017, p. 58.
 
Considerando as informações apresentadas, avalie as asserções
abaixo e a relação proposta entre elas.
 
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 8/19
I. O uso de métodos get e set públicos em atributos private constitui
uma violação do encapsulamento da classe.
 
PORQUE
 
II. Métodos get e set permitem, respectivamente, ler e modificar o valor
do atributo, e métodos públicos são visíveis para todo o projeto.
 
A respeito dessas asserções, assinale a opção correta:
 
A asserção I é uma proposição verdadeira e a asserção II é uma
proposição falsa.
 
As asserções I e II são proposições verdadeiras e a asserção II é uma
justificativa correta da I.
 As asserções I e II são proposições falsas. 
 
As asserções I e II são proposições verdadeiras, mas a asserção II não
é uma justificativa correta da I.
 
A asserção I é uma proposição falsa e a asserção II é uma proposição
verdadeira.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 9/19
Alternativa correta.
O método get, por padrão, retorna o valor de uma variável,
enquanto o método set recebe um parâmetro e, dado que ele siga
suas regras, o atribui para um atributo. Eles são usados em
atributos privados – se os atributos fossem públicos, não haveria
necessidade de os usar.
Entretanto, eles não constituem uma violação de
encapsulamento, pelo contrário, eles são utilizados justamente
para permitir que o objeto possa receber novas informações sem
que o encapsulamento seja violado. Ninguém pode acessar
diretamente os atributos, e sim trocar mensagens através dos
métodos, de modo que o objeto tem total controle sobre o que
acontecerá com o atributo através da lógica dos métodos,
podendo inclusive vetar alterações.
0,6 / 0,6 ptsPergunta 5
Leia o texto a seguir:
 
Grupos de desenvolvimento de software podem usar uma abordagem
modular de projeto e implementação orientados a objetos para que
sejam muito mais produtivos do que com as técnicas anteriormente
populares como “programação estruturada” — programas orientados a
objetos são muitas vezes mais fáceis de entender, corrigir e modificar.
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017, p. 8.
 
Considerando as informações apresentadas, analise as afirmações
abaixo:
 
I. A programação orientada a objeto é um conjunto de princípios,
portanto pode ser aplicada em qualquer linguagem, desde que o
programador siga seus princípios.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 10/19
 
II. Programas orientados a objeto possuem melhor desempenho do
que programas feitos utilizando apenas “programação estruturada”, ou
seja, são mais rápidos e usam menos memória.
 
IV. Programas orientados a objeto possuem grande capacidade de
reutilização de código, gerando códigos menores e fáceis de propagar
correções ou novas funcionalidades.
 
Estão corretas as afirmações:
 II e III, apenas. 
 II, apenas. 
 I e III, apenas. 
 I e II, apenas. 
 III, apenas. 
Alternativa correta.
A programação orientada a objeto possui um conjunto de
princípios, mas para que eles sejam implementados, a linguagem
precisa oferecer suporte a uma série de estruturas específicas,
como classes e objetos, por este motivo a afirmação I está
incorreta.
A programação orientada a objeto não tem como objetivo
melhorar o desempenho computacional das aplicações, inclusive
a sua “burocracia” pode tornar o programa mais lento ou pesado
do que um programa escrito em técnicas mais antigas, ou seja, a
afirmação II está incorreta.
Uma das estratégias da programação orientada a objeto é
justamente modularizar o código de modo que seja fácil reutilizá-
lo, e correções ou alterações podem ser feitas pontualmente em
um módulo, e todos os módulos que interagem com ele serão
afetados pela mudança sem necessariamente serem alterados
também, confirmando a afirmação III como correta.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 11/19
0,6 / 0,6 ptsPergunta 6
Leia o texto a seguir:
 
Ao dirigir um carro, o ato de pressionar o acelerador envia uma
mensagem para o veículo realizar uma tarefa — isto é, ir mais rápido.
Da mesma forma, você envia mensagens para um objeto. Cada
mensagem é implementada como uma chamada de método que
informa a um método do objeto a maneira de realizar sua tarefa. Por
exemplo, um programa pode chamar o método depósito de um
objeto conta bancária para aumentar o saldo da conta.
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017. p. 9. Adaptado.
 
Considerando o exemplo em destaque no fim do texto acima, assinale
a opção que melhor descreve como representar o valor a ser
depositado.
 
 
O valor a ser depositado seria uma exceção da classe conta bancária. 
 O valor a ser depositado seria um parâmetro do método depósito. 
Alternativa correta.
O valor a ser depositado é uma informação que não é intrínseca
do objeto (portanto não pode ser um atributo), nem é gerada pela
própria função depósito (não podendo ser, portanto, “determinada
internamente”), e sim uma informação externa que precisa ser
informada para o método depósito. Se o método é a forma de
passar mensagens, então essa informação deve ser um
parâmetro do método. Herança e exceção nem sequer se aplicam
à situação descrita no texto.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 12/19
 
O valor a ser depositado deve ser determinado internamente pelo
método depósito, seguindo o princípio da abstração.
 
O valor a ser depositado seria um atributo do objeto conta bancária. 
 
O valor a ser depositado seria uma classe filha da classe conta
bancária.
0,6 / 0,6 ptsPergunta 7
Leia o texto a seguir:
 
Quando uma classe implementa uma interface, o mesmo
relacionamento “é um” fornecido por herança se aplica. A classe
Employee implementa Payable, assim podemos dizer que um
Employee é uma Payable. De fato, objetos de quaisquer classes que
estendem Employee também são objetos Payable. Os objetos de
quaisquer subclasses da classe que implementa a interface também
podem ser pensados como objetos do tipo de interface.
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017, p. 337. Adaptado.
 
Considerando as informações apresentadas, avalie as asserções
abaixo e a relação proposta entre elas:
 
I. Existe uma relação de polimorfismo entre uma classe que
implementa uma interface e a interface, isso é, objetos da classe
podem ser tratados como objetos “da interface”.
 
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 13/19
PORQUE
 
II. A relação entre uma classe e uma interface pode ser utilizada para
realizar herança, transmitindo códigos prontos, como métodos, que
podem ser utilizados pelos objetos de suas subclasses, apesar de ser
impossívelinstanciar objetos de uma interface.
 
A respeito dessas asserções, assinale a opção correta:
 
A asserção I é uma proposição falsa e a asserção II é uma proposição
verdadeira
 
A asserção I e a asserção II são proposições verdadeiras, mas a II não
é uma justificativa correta da I.
 A asserção I e a asserção II são proposições falsas. 
 
A asserção I é uma proposição verdadeira, e a asserção II é uma
proposição falsa.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 14/19
Alternativa correta.
Interfaces servem, precisamente, para permitir o polimorfismo
entre objetos de classes não relacionadas. Ao implementar uma
interface, uma classe “assume o compromisso” de implementar
todos os métodos declarados na interface. Apesar de a
funcionalidade interna poder ser diferente, a assinatura será a
mesma, isso quer dizer que todo código feito para interagir com
um “objeto da interface” poderá interagir com objetos daquela
classe, pois o código espera um certo conjunto de métodos e este
conjunto estará disponível. A asserção I é verdadeira.
Porém, a relação entre uma classe e uma interface não é de
herança. A interface não “transmite” nenhum tipo de código
pronto, nem possui métodos implementados, ela possui apenas
as assinaturas dos métodos, e todas as classes devem
implementar esses métodos, cada qual à sua maneira. Por este
motivo, a asserção II é falsa.
 
A asserção I e a asserção II são proposições verdadeiras, e a II é uma
justificativa correta da I.
0 / 0,6 ptsPergunta 8IncorretaIncorreta
Leia o texto a seguir:
 
Assim como os desenhos de engenharia de um carro podem ser
reutilizados várias vezes para fabricar muitos carros, você pode
reutilizar uma classe muitas vezes para construir vários objetos. A
reutilização de classes existentes ao construir novas classes e
programas economiza tempo e esforço. Também ajuda a construir
sistemas mais confiáveis e eficientes, porque classes e componentes
existentes costumam passar por extensos testes, depuração e ajuste
de desempenho. Assim como a noção das partes intercambiáveis foi
crucial para a Revolução Industrial, classes reutilizáveis são
fundamentais para a revolução de software que foi estimulada pela
tecnologia de objetos.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 15/19
 
Fonte: DEITEL, H.; DEITEL, P. Java: como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017, p. 9.
 
Considerando as informações apresentadas, avalie as asserções
abaixo e a relação proposta entre elas.
 
I. A programação orientada a objeto adota princípios como a
abstração, o encapsulamento, a herança e o polimorfismo.
 
PORQUE
 
II. Os quatro princípios da programação orientada a objeto combinados
dão origem ao princípio “Write Once, Run Anywhere”, em que o código
é compilado uma única vez e pode ser reutilizado em qualquer
computador.
 
A respeito dessas asserções, assinale a opção correta.
 
A asserção I é uma proposição falsa e a asserção II é uma proposição
verdadeira.
 As asserções I e II são proposições falsas. 
 
As asserções I e II são proposições verdadeiras, mas a II não é uma
justificativa correta da I.
 
As asserções I e II são proposições verdadeiras, e a II é uma
justificativa correta da I.
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 16/19
Alternativa incorreta.
A programação orientada a objeto prega quatro princípios
básicos: o encapsulamento, onde as informações sobre um objeto
são protegidas, a abstração, onde cada objeto possui uma
interface simples ocultando a complexidade de seu
funcionamento, a herança, onde código de uma classe pode ser
reaproveitado por outra, e o polimorfismo, onde um objeto pode
ser tratado como membro de diferentes classes, ou seja, a
asserção I está correta.
Entretanto, os princípios mencionados na asserção I nada têm a
ver com o “Write Once, Run Anywhere”. Linguagens orientadas a
objeto podem ser compiladas, interpretadas ou híbridas. Um
programa em C++, por exemplo, precisa ser compilado
novamente para cada sistema, e pode exigir modificações de um
sistema para o outro. O W.O.R.A. é um conceito que surgiu com o
Java e tem a ver com arquitetura de compilador, máquina virtual e
bytecode, portanto, a asserção II está incorreta.
 
A asserção I é uma proposição verdadeira, e a asserção II é uma
proposição falsa.
0,6 / 0,6 ptsPergunta 9
Observe o código a seguir:
 
class Carregador {
 float tensao;
 float corrente;
 float potencia;
 
 public Carregador() {
 // ...
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 17/19
 }
 
 public void carregar(Bateria b) {
 // ...
 }
}
 
Assinale a afirmação correta sobre o código acima:
 
 Um dos métodos da classe Carregador é “corrente”. 
 A classe Carregador sobrecarrega construtores. 
 Um dos atributos da classe Carregador é “Bateria”. 
 Existe outra classe chamada “Bateria”. 
Alternativa correta.
Os atributos da classe “Carregador” são as suas variáveis
internas: “tensao”, “corrente” e “potencia”. Os métodos da classe
“Carregador” são suas funções. O método (função) “carregar”
recebe um parâmetro “b” da classe “Bateria”. Existe um único
construtor, portanto não há sobrecarga, que é quando criamos
diferentes construtores com diferentes parâmetros.
 Um dos atributos da classe Carregador é “carregar”. 
0,6 / 0,6 ptsPergunta 10
Analise o código abaixo:
 
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 18/19
abstract class Pessoa {
 public String nome;
 
 public Pessoa(){
 // ...
 }
 private void anda()
 {
 // ...
 }
 protected abstract void fala();
}
 
Considerando o código exposto acima, por que não podemos criar
objetos da classe Pessoa?
 
 
Porque ela possui erros: atributo público e métodos private e protected.
 Porque ela é uma interface. 
 Porque faltou implementar o método fala. 
 Porque ela é uma classe abstrata e serve apenas para herança. 
11/12/2021 22:52 AO2: Programação Orientada a Objetos
https://famonline.instructure.com/courses/12596/quizzes/42409 19/19
Alternativa correta.
O “abstract” logo na primeira linha indica que ela é uma classe
abstrata. Classes abstratas não podem ser utilizadas para
instanciar objetos, apenas para realizar herança. Classes
abstratas não são interfaces: elas servem para herança e podem
ter métodos implementados e atributos que podem ser herdados,
enquanto a interface serve apenas para obrigar outras classes a
implementar métodos específicos.
O método “fala” não estar implementado é um impeditivo, porque
classes com métodos não implementados devem ser abstratas,
porém, simplesmente implementar o método não resolveria: a
palavra “abstract” no topo manterá a classe abstrata mesmo que
seus métodos estejam todos implementados.
Apesar de o padrão ser atributos serem privados, métodos serem
públicos e métodos get e set serem disponibilizados para acessar
os atributos, nada disso é obrigatório, e não seguir o padrão não é
impeditivo para que a classe funcione ou possa ser instanciada.
 Porque ela não possui get e set para seu atributo. 
Pontuação do teste: 5,4 de 6

Continue navegando