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 8 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 8 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

Prévia do material em texto

19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 1/8
AO2
Entrega 19 dez em 23:59 Pontos 6 Perguntas 10 Disponível 19 out em 0:00 - 19 dez em 23:59 Limite d
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 11 minutos 5,4 de 6
Pontuação deste teste: 5,4 de 6
Enviado 19 dez em 19:59
Esta tentativa levou 11 minutos.
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que você clique em "FAZER O QUESTIONÁRIO
0,6 / 0,6 ptsPergunta 1
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.
 
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:
 I e III, apenas. 
 I e II, apenas. 
 II e III, apenas. 
 II, apenas. 
 III, apenas. Correto!Correto!
https://famonline.instructure.com/courses/34687/quizzes/171145/history?version=1
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 2/8
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.
0,6 / 0,6 ptsPergunta 2
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.
 
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 verdadeiras, mas a II não é 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, e a II é uma justificativa correta da I. 
 A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa. Correto!Correto!
Alternativa correta.
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.
0,6 / 0,6 ptsPergunta 3
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 3/8
Analise o código abaixo:
 
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 faltou implementar o método fala. 
 Porque ela é uma interface. 
 Porque ela não possui get e set para seu atributo. 
 Porque ela é uma classe abstrata e serve apenas para herança. Correto!Correto!
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 possui erros: atributo público e métodos private e protected. 
0,6 / 0,6 ptsPergunta 4
Leia o texto abaixo:
 
Um método abstrato define a assinatura de um método, mas não fornece implementação. Uma subclasse deve fornecer sua própria
implementação de cada método abstrato definido por sua superclasse. Portanto, um método abstrato especifica a interface do método, mas não a
implementação. Embora as classes e métodos abstratos sejam úteis, podemos levar esse conceito um passo adiante. Em Java, podemos separar
totalmente a interface de uma classe de sua implementação usando a palavra-chave interface.
Uma interface é sintaticamente semelhante a uma classe abstrata no fato de podermosespecificar um ou mais métodos sem corpo. Estes
métodos devem ser implementados por uma classe para que suas ações sejam definidas. Quando uma interface é definida, não há limite para o
número de classes que podem implementá-la. Além disso, uma classe pode implementar qualquer número de interface.
 
Fonte: SCHILDT, H. Java para iniciantes: crie, compile e execute programas Java rapidamente, 6ª edição. Porto Alegre: Bookman, 2015
(adaptado).
 
Considerando as informações apresentadas, assinale a opção correta.
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 4/8
 Segundo o texto, todos os métodos não precisam ser implementados pela classe que venha a utilizar uma determinada interface. 
 Uma interface, assim como uma classe abstrata, fornece os nomes dos métodos e os implementa, conforme indica o texto. 
 A partir do texto, entende-se que as interfaces possuem atributos assim como as classes. 
 A partir do texto, entende-se que uma interface especifica o que deve ser feito, mas não como deve ser feito. Correto!Correto!
A alternativa está correta. Uma interface, assim como um método abstrato, especifica o que deve ser feito, mas não como deve ser feito.
 A partir do texto, compreende-se que um programa em Java pode instanciar uma interface. 
0,6 / 0,6 ptsPergunta 5
Leia o texto abaixo:
 
Uma classe pode assumir alguns comportamentos. Por exemplo, uma classe pode ser definida a partir de outra classe já existente. Nesse caso a
classe definida a partir de uma classe existente é chamada de classe-filho (ou subclasse), enquanto a classe existente é denominada classe-pai. É
possível determinar famílias de classes através de um conceito de hierarquia de classes.
 
Fonte: MANZANO, J. A. N. G. Java 7: programação de computadores: guia prática de introdução, orientação e desenvolvimento. São Paulo:
Érica, 2011.
 
Considerando as informações apresentadas, assinale a opção correta.
 
A partir do texto, é possível afirmar que a classe-filho automaticamente herda os atributos e as funcionalidades da classe-pai. A este efeito dá-se o nome de
encapsulamento.
 
 
Considerando o texto apresentado, compreende-se que a classe-filho automaticamente herda os atributos e as funcionalidades da classe-pai. A este efeito
dá-se o nome de abstração.
 
 
Considerando o texto apresentado, entende-se que a classe-filho automaticamente herda os atributos e as funcionalidades da classe-pai. A este efeito dá-se
o nome de polimorfismo.
 
 
A partir do texto, é possível afirmar que a classe-filho automaticamente herda os atributos e as funcionalidades da classe-pai. A este efeito dá-se o nome de
acoplamento.
 
 
A partir do texto, entende-se que a classe-filho automaticamente herda os atributos e as funcionalidades da classe-pai. A este efeito dá-se o nome de
herança.
 
Correto!Correto!
A alternativa está correta. Como o texto afirma, “uma classe pode ser definida a partir de outra classe já existente”, com isso, a classe-filho
automaticamente herda os atributos e as funcionalidades da classe-pai. A este efeito dá-se o nome de herança. 
0,6 / 0,6 ptsPergunta 6
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
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 5/8
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.
 
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:
 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. Correto!Correto!
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.
 As asserções I e II são proposições falsas. 
 As asserções I e II são proposições verdadeiras e a asserção II é uma justificativa correta da I. 
 A asserção I é uma proposição verdadeira e a asserção II é uma proposição falsa. 
0 / 0,6 ptsPergunta 7
Observe o código a seguir:
 
class Carregador {
 float tensao;
 float corrente;
 float potencia;
 
 public Carregador() {
 // ...
 }
 
 public void carregar(Bateria b) {
 // ...
 }
}
 
Assinale a afirmação correta sobre o código acima:
 
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 6/8
 Um dos atributos da classe Carregador é “carregar”. 
 Um dos métodos da classe Carregador é “corrente”. 
 Existe outra classe chamada “Bateria”. posta corretaposta correta
 Um dos atributos da classe Carregador é “Bateria”. 
 A classe Carregador sobrecarrega construtores. ê respondeuê respondeu
Alternativa incorreta.
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.
0,6 / 0,6 ptsPergunta 8
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”.
 
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ível instanciar objetos de uma interface.
 
A respeito dessas asserções, assinale a opção correta:
 A asserção I e a asserção II são proposições verdadeiras, e a II é uma justificativa correta da I. 
 A asserção I é uma proposição verdadeira, e a asserção II é uma proposição falsa. Correto!Correto!
Alternativa correta.
Interfaces servem, precisamente, para permitir o polimorfismo entre objetosde 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, mas a 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 
 A asserção I e a asserção II são proposições falsas. 
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 7/8
0,6 / 0,6 ptsPergunta 9
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 não existe em “automóvel”, mas pode ser criado em “conversível”. Correto!Correto!
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, é algo que 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” 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 só poderá ser usado em “conversível” se for protected ou public. 
 O método para levantar ou abaixar o teto existe em “automóvel”, mas deve ser sobreposto. 
0,6 / 0,6 ptsPergunta 10
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 deve ser determinado internamente pelo método depósito, seguindo o princípio da abstração. 
 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. Correto!Correto!
19/12/23, 20:05 AO2: DP.ADAP.BIM - Programação Orientada a Objetos
https://famonline.instructure.com/courses/34687/quizzes/171145 8/8
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.
 O valor a ser depositado seria uma classe filha da classe conta bancária. 
 O valor a ser depositado seria um atributo do objeto conta bancária. 
Pontuação do teste: 5,4 de 6
Anterior Próximo
https://famonline.instructure.com/courses/34687/modules/items/983245
https://famonline.instructure.com/courses/34687/modules/items/983247

Continue navegando