Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Orientada a Objetos - 20212.A Avaliação On-Line 4 (AOL 4) - Questionário Nota 10/10 Conteúdo do exercício 1. Pergunta 1 /1 Leia o trecho a seguir: “Para que o polimorfismo possa ser utilizado, é necessário que os métodos que estejam sendo definidos nas classes derivadas tenham exatamente a mesma assinatura do método definido na superclasse; neste caso, está sendo utilizado o mecanismo de redefinição de métodos (overriding).”Fonte: RICARTE, I. L. M. Programação orientada a objetos: uma abordagem com Java. Campinas: Unicamp, 2001. p. 7. Disponível em: https://bit.ly/2NnCqML. Acesso em: 10 jun. 2020. Complementando o trecho apresentado, um método que contenha como parâmetro uma classe genérica pode receber objetos mais especializados abaixo de sua hierarquia. Considerando estas informações e o conteúdo estudado sobre polimorfismo e ligação dinâmica, assinale a afirmativa correta: Ocultar opções de resposta 1. Considerando a ligação dinâmica, se não definido pelo programador qual método será executado, quem decidirá é o Java em tempo de compilação. 2. Considerando o polimorfismo, a classe genérica pode ser passada como parâmetro cujo argumento é de uma classe mais especializada. 3. A ligação dinâmica só estará presente quando o método existente na superclasse é inexistente na subclasse. 4. Se o objeto especializado possuir um método que seja inexistente na superclasse, o método pode ser chamado usando polimorfismo. 5. Considerando o polimorfismo e a ligação dinâmica, cabe ao próprio Java definir em tempo de execução qual método será utilizado. Resposta correta 2. Pergunta 2 /1 Analisando as classes a seguir, vê-se que o método Start possui o operador instanceof declarado na linha 10 da classe, e ele é usado para comparar se um objeto é instância de uma classe específica. Basicamente, ele está comparando se o objeto produto é um Eletrodomestico. Na linha 11, o objeto produto qual é recebido por parâmetros, é realizado um cast para o tipo Eletrodoméstico, ou seja, ele está assumindo sua forma original, caso a verificação acima (linha 10) seja verdadeira. IMAGEM 8.PNG Considerando essas informações e o conteúdo estudado sobre polimorfismo e ligação dinâmica, quanto à execução do código acima, a execução do método consultarPreco, onde x e y são quaisquer valores numéricos, analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s): I. ( ) Se o produto obtido for um objeto de Eletrodoméstico, ocorrerá o polimorfismo. II. ( ) Se o produto obtido for um objeto de Movel, ocorrerá o polimorfismo. III. ( ) Se o produto obtido for um objeto de Eletrodomestico, a ligação dinâmica será aplicada. IV. ( ) Se o produto obtido for um objeto de Movel, a ligação dinâmica será aplicada. Agora, assinale a alternativa que apresenta a sequência correta: Ocultar opções de resposta 1. F, F, V, V. 2. V, F, V, V. 3. F, V, V, V. 4. V, V, F, V. Resposta correta 5. F, V, F, V. 3. Pergunta 3 /1 Dado que para haver a ligação dinâmica é necessário que haja o polimorfismo, e que por vez, necessita que haja herança entre a subclasse e superclasse, o código a seguir instancia um novo objeto do tipo Produto, que sobrescreve o método toString. imagem 6.PNG Considerando essas informações e o conteúdo estudado sobre polimorfismo e ligação dinâmica, analise as afirmativas a seguir e assinale V para a(s) verdadeira(s) e F para a(s) falsa(s). I. ( ) O objeto produto pode ser passado como parâmetro, já que o método aguarda o tipo Object. II. ( ) O código apresentado deixará de ser compilado, pois o parâmetro esperado é o Object. III. ( ) Nesse exemplo, no método toStringdeObject está sendo aplicado polimorfismo. IV. ( ) No código apresentado, os indícios do uso da ligação dinâmica são inexistentes. Agora, assinale a alternativa que apresenta a sequência correta: Ocultar opções de resposta 1. V, F, F, F. 2. F, V, F, F. 3. V, V, F, F. 4. V, F, F, V. 5. V, F, V, F. Resposta correta 4. Pergunta 4 /1 Os blocos try-catch podem ser utilizados com o bloco finally, declarado ao final. No bloco try deve conter códigos que poderão gerar exceção, e os blocos catches, são responsáveis pela captura das exceções se geradas, e neles deve, se necessário, realizar os devidos tratamentos das exceções. A imagem a seguir é um exemplo com a estrutura dos blocos try-catch-finally. IMAGEM 9.PNG Considerando essas informações e o conteúdo estudado sobre tratamento de exceções, analise as asserções a seguir e a relação proposta entre elas: I. O código apresentado na imagem apresentará uma exceção do tipo NullPointerException e o bloco finally não será executado. Porque: II. Quando há exceções capturadas pelo bloco catch, o bloco finally não é executado. A seguir, assinale a alternativa correta: Ocultar opções de resposta 1. As asserções I e II são proposições falsas. Resposta correta 2. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 3. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 4. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 5. As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 5. Pergunta 5 /1 Em determinado trecho de código, o sistema realiza a consulta de um dado no banco de dados por meio de alguma propriedade, que possivelmente pode ser um ID desse objeto. Quando o objeto é encontrado, suas informações são recuperadas e o objeto é criado através dessas propriedades. Considerando essas informações e o conteúdo estudado sobre tratamento de exceções, pode-se afirmar que: Ocultar opções de resposta 1. a consulta poderá não retornar nenhuma informação, o que resultaria em uma referência nula, e ao tentar acessar esta referência, implicaria na exceção NullPointerException caso o sistema tente acessá-la. Resposta correta 2. a consulta poderá não retornar nenhuma informação, o que resulta em uma referência nula, e ao tentar acessar esta referência, será instanciado um novo objeto com atributos vazios. 3. a consulta sempre retornará um objeto do banco de dados com as informações existentes recuperadas do banco, e por este motivo haverá sempre uma referência não nula. 4. a consulta poderá não retornar nenhuma informação, e deve ser implementado a estrutura if-else para capturar esta exceção e criar fluxos alternativos. 5. ao realizar uma consulta no bando de dados, deve-se implementar os blocos try-catch para evitar NullPointerException que poderá ser gerado caso objeto não seja encontrado no banco de dados. 6. Pergunta 6 /1 Um dos erros mais comuns durante a execução de um programa é o erro NullPointerException, o qual indica que a aplicação tentou usar uma referência nula, ou seja, que ainda não possui um objeto definido para aquela referência. A imagem a seguir é uma estrutura de código que deverá exibir o detalhe existente no método toString da classe Produto. imagem 4.PNG Considerando estas informações e o conteúdo estudado sobre tratamento de exceções, analise as asserções a seguir e a relação proposta entre elas: I. O código apresentará a exceção NullPointerException. Porque: II. O objeto produtos da classe BancoDeDadosVirtual não foi instanciado. A seguir, assinale a alternativa correta: Ocultar opções de resposta 1. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. Resposta correta 2. As asserções I e II são proposições falsas. 3. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 4. As asserções I e II são verdadeiras, e a II é uma justificativa correta da I. 5. As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I. 7. Pergunta 7 /1 A imagem a seguir representa um código que tentará executar o casting (conversão) de um objeto para outro tipo deobjeto. Neste exemplo, a classe Produto é superclasse de Movel e Eletrodomestico, e foram adicionados dois blocos catches, onde o primeiro captura uma exceção mais específica, que neste caso é a exceção ClassCastExeption do pacote “java.lang.ClassCastException”, e o segundo uma mais genérica, caso esta específica não seja capturada. IMAGEM 10.PNG Considerando essas informações e o conteúdo estudado sobre tratamento de exceções e polimorfismo, pode se afirmar que: Ocultar opções de resposta 1. o terceiro casting (linha 8) será realizado com sucesso e o código será executado sem exceção. Resposta correta 2. o primeiro e terceiro castings (linha 6 e 8, respectivamente) serão realizados com sucesso. 3. o primeiro casting (linha 6) está fazendo uso do polimorfismo e executará corretamente. 4. o segundo casting (linha 7) gerará uma exceção genérica, executando o código da linha 20. 5. todos os casting gerarão exceções, e o primeiro casting será capturado pelo catch da linha 16. 8. Pergunta 8 /1 Leia o trecho a seguir: “Polimorfismo refere-se à capacidade de dois ou mais objetos responderem à mesma mensagem, cada um a seu próprio modo. A utilização da herança torna-se fácil com o polimorfismo. Desde que não é necessário escrever um método com nome diferente para responder a cada mensagem, o código é mais fácil de entender.”Fonte: KAMIENSKI, C. A. Introdução ao paradigma de orientação a objetos. João Pessoa: Cefet, 1996. p. 13. Disponível em: https://bit.ly/2zXBxHL. Acesso em: 19 mar. 2020. Considerando estas informações e o conteúdo estudado sobre polimorfismo, pode-se afirmar que: Ocultar opções de resposta 1. no uso do polimorfismo, o objeto mais genérico pode executar qualquer método existente na subclasse. 2. diante do polimorfismo, o objeto de subclasse pode se transformar em um objeto da superclasse. Resposta correta 3. no uso do polimorfismo, o objeto mais especializado pode executar qualquer método existente em sua classe. 4. classes que herdem o mesmo objeto, podem fazer uso do polimorfismo entre si, já que a superclasse é desconsiderada. 5. diante do polimorfismo, o objeto de superclasse pode se transformar em um objeto da subclasse. 9. Pergunta 9 /1 Considerando que a classe Bicicleta seja subclasse da superclasse MeioLocomocao. Ambas possuem o método locomover, e a subclasse Bicicleta possui o método pedalar. A subclasse sobrescreve o método locomover, e durante a instanciação do objeto da subclasse, sua referência está apontada para a superclasse. Considerando essas informações e o conteúdo estudado sobre polimorfismo, analise as asserções a seguir e a relação proposta entre elas: I. O código apresentará erro durante a execução. Porque: II. Uma referência de subclasse não pode ser referência de instancia de uma superclasse. A seguir, assinale a alternativa correta: Ocultar opções de resposta 1. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. Resposta correta 2. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 3. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 4. As asserções I e II são proposições falsas. 5. As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. 10. Pergunta 10 /1 Exceções são casos excepcionais que podem acontecer de forma inesperada em algum momento durante alguma execução, porém, em alguns trechos, estes tipos de exceções podem ser previstos, e o programador cria uma estrutura de código com fluxos alternativos. Considerando essas informações e o conteúdo estudado sobre tratamento de exceções analise as asserções a seguir e a relação proposta entre elas: I. Uma exceção é capturada pelo bloco try-catch, onde no bloco try deverá conter trechos do código que possivelmente apresentarão erros enquanto no catch poderá conter trechos de código que executarão uma ação alternativa. Porque: II. O bloco catch captura exceções, possibilitando criar fluxos alternativos através de uma exceção capturada. A seguir, assinale a alternativa correta: Ocultar opções de resposta 1. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. 2. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. 3. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 4. As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. Resposta correta 5. As asserções I e II são proposições falsas.
Compartilhar