Buscar

Programação Orientada a Objetos aol4

Prévia do material em texto

1. Pergunta 1
/1
A imagem a seguir se trata de um trecho de código, no qual há uma classe Pessoa, sendo esta superclasse da subclasse Aluno. O método getNome está declarado na superclasse, enquanto o método getSerie está declarado na subclasse:
imagem 1(1).PNG
Considerando essas informações e o conteúdo estudado sobre polimorfismo, pode-se afirmar que:
Ocultar opções de resposta 
1. 
devido à classe Aluno herdar a classe Pessoa, o polimorfismo está sendo aplicado no método obterNomeESerie.
2. 
se o parâmetro do método obterNomeESerie fosse do tipo pessoa o projeto compilaria.
3. 
a classe IniciarAplicacao não faz uso do polimorfismo em nenhum trecho de código.
Resposta correta
4. 
o objeto aluno poderia ser declarado da seguinte maneira: Aluno aluno = new Pessoa().
5. 
no retorno do método obterNomeESerie há evidências de que o polimorfismo está sendo usado.
2. Pergunta 2
/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 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.
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 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
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.
3. Pergunta 3
/1
As capturas de exceções são feitas para que se possa realizar alguma ação diante de um cenário onde há alguma probabilidade de haver erros e diante destes erros podem ser criados fluxos alternativos, ou apenas registrar logs sobre os erros. Para o registro de logs, geralmente é utilizada alguma biblioteca, como o log4j, por exemplo, mas não necessariamente são utilizados para registrar as exceções, pois também servem para registrar informações sobre a execução do sistema, podendo ser declarados em qualquer trecho do código.
Considerando essas informações e o conteúdo estudado sobre tratamento de exceções, para capturar uma exceção e registrar em um log, pode-se afirmar que:
Ocultar opções de resposta 
1. 
a funcionalidade deve ser declarada no bloco finally.
2. 
a funcionalidade deve ser declarada no bloco catch.
Resposta correta
3. 
a funcionalidade deve ser declarada no bloco else.
4. 
a funcionalidade deve ser declarada no bloco try.
5. 
a funcionalidade deve ser declarada no bloco if.
4. Pergunta 4
/1
O bloco if-else é uma estrutura de condição que avalia se dada condição é verdadeira ou falsa. Esta estrutura pode ser utilizada para evitar alguns erros que podem ocorrer durante a execução do código através de determinadas condições.
Considerando essas informações e o conteúdo estudado sobre tratamento de exceções, assinale a alternativa correta:
Ocultar opções de resposta 
1. 
O bloco finally do catch também é utilizado para evitar exceções.
2. 
O bloco try-catch também pode ser utilizado para evitar exceções.
3. 
O bloco if-else não pode ser utilizado para capturar exceções.
Resposta correta
4. 
O bloco try-catch é similar a utilização do bloco if-else.
5. 
As exceções são capturadas pelo bloco if e tratadas pelo bloco else.
5. Pergunta 5
/1
Leia o trecho a seguir:
“Uma exceção é um sinal que indica que algum tipo de condição excepcional ocorreu durante a execução do programa. Assim, exceções estão associadas a condições de erro que não tinham como ser verificadas durante a compilação do programa.”Fonte: RICARTE, I. L. M. Programação orientada a objetos: uma abordagem com Java. Campinas: Unicamp, 2001. p. 29. Disponível em: https://bit.ly/2NnCqML. Acesso em: 10 jun. 2020.
Considerando estas informações e o conteúdo estudado sobre tratamento de exceções, analise as afirmativas a seguir:
I. Uma exceção pode ser evitada fazendo uso de operador ternário.
II. Uma exceção pode ser evitada fazendo uso do if-else.
III. Uma exceção pode ser evitada fazendo uso do try-catch.
IV. Quando uma referência está nula é gerado a exceção NullPointerException.
Está correto apenas o que se afirma em:
Ocultar opções de resposta 
1. 
I, II e IV.
2. Incorreta: 
II, III e IV.
3. 
I, II, III e IV.
Resposta correta
4. 
I e III.
5. 
I e IV.
6. Pergunta 6
/1
De acordo com a imagem abaixo, a classe Pessoa implementa e sobrescreve o método toString, e a classe Aluno que estende Pessoa, também implementa e sobrescreve o método toString. Cada qual implementa seu próprio código em cada classe, retornando seus dados. 
IMAGEM 2(1).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 polimorfismo está sendo aplicado no método main da classe IniciarAplicacao.
II. ( ) A ligação dinâmica está sendo aplicada no método main da classe IniciarAplicacao.
III. ( ) Será apresentado erro na execução, pois é impossível converter objeto aluno em pessoa.
IV. ( ) Ao executar a aplicação, será exibido no console a mensagem “Aluno: Malaquias 1º B”.
Agora, assinale a alternativa que apresenta a sequência correta:
Ocultar opções de resposta 
1. 
V, V, F, F.
2. 
F, V, F, V.
3. 
F, V, V, V.
4. 
V, F, F, V.
5. 
V, V, F, V.
Resposta correta
7. Pergunta 7
/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 verdadeiras, mas a II não é uma justificativa correta da I.
2. 
As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
3. 
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
4. 
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
5. 
As asserções I e II são proposições falsas.
Resposta correta
8. Pergunta 8
/1
A imagem a seguir representa um código que tentará executar o casting (conversão) de um objeto para outro tipo de objeto. 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 segundocasting (linha 7) gerará uma exceção genérica, executando o código da linha 20.
3. 
todos os casting gerarão exceções, e o primeiro casting será capturado pelo catch da linha 16.
4. 
o primeiro casting (linha 6) está fazendo uso do polimorfismo e executará corretamente.
5. 
o primeiro e terceiro castings (linha 6 e 8, respectivamente) serão realizados com sucesso.
9. Pergunta 9
/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. 
F, V, F, F.
2. 
V, V, F, F.
3. 
V, F, F, F.
4. 
V, F, F, V.
5. 
V, F, V, F.
Resposta correta
10. Pergunta 10
/1
O diagrama a seguir representa uma estrutura de classes, em que a superclasse Conta, é herdada pelas classes ContaCorrente e ContaPoupanca. A subclasse contaCorrente tem um objeto do tipo ChequeEspecial, e que através dele é possível obter o limite disponível de cheque especial.
imagem 3.PNG
Considerando essas informações e o conteúdo estudado sobre polimorfismo e ligação dinâmica, analise as asserções a seguir e a relação proposta entre elas:
I. É possível ter um método que recebe como parâmetro um objeto da classe ContaCorrente, porém, fazendo uso do polimorfismo, podemos passar como argumento um objeto da classe ContaPoupanca.
Porque:
II. A classe ContaPoupanca é subclasse da superclasse Conta, da mesma forma que a classe ContaCorrente, e não haveria erro de compilação.
A seguir, assinale a alternativa correta:
Ocultar opções de resposta 
1. 
As asserções I e II são verdadeiras, mas a II não é uma justificativa correta da I.
2. Incorreta: 
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
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.
Resposta correta
5. 
As asserções I e II são verdadeiras, e a II é uma justificativa correta da I.

Continue navegando