Prévia do material em texto
Disciplina: Programação Orientada a Objetos (ADS17) Avaliação: Avaliação II - Individual Semipresencial ( Cod.:460225) ( peso.:1,50) Prova: 13535881 Nota da Prova: 10,00 Legenda: Resposta Certa Sua Resposta Errada Parte superior do formulário 1. Em combinação com a definição de pacotes e classes, os modificadores de visibilidade constituem-se de uma ferramenta poderosa na definição da segurança e encapsulamento da aplicação. Com relação à utilização de modificadores de visibilidade na linguagem de programação Java, analise as sentenças a seguir: I- Um método com modificador default contido em uma classe pública não pode ser acessado em uma classe disponível em outro pacote. II- Um método com modificador public contido em uma classe pública somente pode ser acessado por uma classe disponível em outro pacote através do comando import. III- Uma classe com modificador default pode ser acessada por uma classe de outro pacote com o comando import. IV- Um método private colocado em uma classe com o modificador default não pode ser acessado por outra classe dento do mesmo pacote. Agora, assinale a alternativa CORRETA: a) Somente a sentença II está correta. b) As sentenças II e III estão corretas. c) As sentenças I, II e IV estão corretas. d) Somente a sentença IV está correta. 2. A programação orientada a objetos permite o desenvolvimento de códigos-fonte utilizando o encapsulamento, que evita ou diminui o acoplamento, dependência dos códigos-fonte, e aumenta a coesão, que é o princípio da responsabilidade única de um trecho de código-fonte ou um método, por exemplo. Além disso, o polimorfismo é outra vantagem da programação orientada a objetos, o qual possibilita a manutenção futura sem necessitar de muitas alterações. Com relação ao encapsulamento, assinale a alternativa CORRETA: a) O polimorfismo apenas ocorre quando o modificador dos métodos da classe forem "protected". b) O polimorfismo permite que um único nome de classe represente diferentes códigos-fonte. c) O polimorfismo possui a desvantagem de tornar as classes com maior quantidade de código-fonte. d) O principal objetivo do polimorfismo é a capacidade de herdar métodos e classes para uma subclasse. 3. Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década de 90 por uma equipe de programadores. Observe a figura anexa que ilustra uma situação típica em que podemos aplicar o conceito de herança de classes em Java. Considerando os conceitos de programação orientada a objetos, analise as sentenças a seguir: I- A classe FormaGeometrica, indicada pela letra A, é considerada a subclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- A classe Triangulo tem como superclasse a classe FormaGeometrica. Agora, assinale a alternativa CORRETA: a) As sentenças II e III estão corretas. b) As sentenças I e III estão corretas. c) Somente a sentença I está correta. d) As sentenças I e II estão corretas. 4. Através do encapsulamento, é possível deixar o software mais manutenível, através da centralização de responsabilidades, ocultação de implementação e exposição de interfaces. Com relação ao encapsulamento e sua implementação na linguagem de programação Java, analise as sentenças a seguir: I- Atributos também podem ser ocultados, no sentido de garantir um maior encapsulamento. II- O modificador default permite o acesso padrão a todos dentro da mesma aplicação. III- Quanto maior o acoplamento, maior a dependência entre os objetos e, consequentemente, mais difícil a manutenção do código fonte. IV- Tanto a coesão quanto o encapsulamento são obtidos na linguagem de programação Java através do modificador de acesso protected. Agora, assinale a alternativa CORRETA: a) As sentenças III e IV estão corretas. b) Somente a sentença II está correta. c) Somente a sentença IV está correta. d) As sentenças I e III estão corretas. 5. De acordo com o paradigma da programação orientada a objetos, o relacionamento de herança difere-se do relacionamento de associação especialmente pela definição dos tipos envolvidos. Considerando a figura a seguir, classifique V para as sentenças verdadeiras e F para falsas: ( ) O relacionamento mais adequado entre Personagem e Gladiador é o de herança. ( ) Um Personagem tem uma arma, o que caracterizaria um relacionamento de associação. ( ) Se Personagem está associado a uma arma e Gladiador é subclasse de Soldado, necessariamente Gladiador tem uma arma. ( ) O relacionamento mais adequado entre Gladiador e Soldado é o de associação. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) F - V - F - F. b) V - V - F - F. c) V - V - V - V. d) V - F - F - V. 6. A utilização de classes abstratas permite uma maior confiabilidade na definição da hierarquia de herança, pois possui características especiais que impedem sua utilização de forma errônea por outros desenvolvedores. Considerando que as palavras sublinhadas na figura a seguir representam erros de compilação, classifique V para as sentenças e F para as falsas: ( ) Bastaria colocar a palavra reservada abstract na frente da palavra class para resolver todos os problemas da classe. ( ) Uma classe abstrata pode possuir métodos concretos. ( ) Somente classes abstratas podem possuir métodos abstratos. ( ) O primeiro método imprime() deve receber um parâmetro de qualquer tipo para que seu erro de compilação seja corrigido. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - V. b) F - V - V - F. c) V - V - F - F. d) V - F - F - V. 7. Por intermédio da herança e do encapsulamento, é possível implementarmos o polimorfismo, mecanismo que permite que duas ou mais classes derivadas de uma mesma superclasse possam criar e/ou invocar métodos com a mesma assinatura, mas com comportamentos diferentes. Com relação ao conceito de polimorfismo e sua implementação na linguagem Java, analise as afirmativas a seguir: I- Polimorfismo de inclusão, polimorfismo paramétrico, sobreposição e sobrecarga são exemplos de tipos de polimorfismo. II- O Java não permite a implementação do polimorfismo paramétrico. III- A técnica de sobrecarga pode ser utilizada para distinguir, em uma determinada classe, dois métodos com o mesmo nome, o mesmo retorno e o mesmo conjunto de argumentos, mas com uma lógica diferente. IV- Na sobrecarga de métodos, é necessário utilizar a anotação @Override. Agora, assinale a alternativa CORRETA: a) As afirmativas I e IV estão corretas. b) As afirmativas II e IV estão corretas. c) Somente a afirmativa I está correta. d) As afirmativas II, III e IV estão corretas. 8. A herança é um dos pilares da programação orientada a objetos e pode, quando bem utilizada, diminuir o esforço na manutenção do código fonte. Com relação ao relacionamento de herança entre duas ou mais classes, analise as sentenças a seguir: I- Através da herança, é possível reaproveitar atributos já definidos em uma classe mãe. II- Uma classe filha pode herdar de quantas superclasses quiser na linguagem de programação Java. III- Não é possível herdar a implementação de métodos, visto que todos devem ser reescritos através do polimorfismo. IV- A palavra inherits define a herança na linguagem de programação Java. Agora, assinale a alternativa CORRETA: a) As sentenças II e III estão corretas. b) Somente a sentença I está correta. c) Somente a sentença IV está correta. d) As sentenças I, II e IV estão corretas. 9. Uma das principais características da orientação a objetos é a possibilidade de ocultar partes do código de um objeto, chamada de encapsulamento.Com o encapsulamento, cada parte do código-fonte é menor e independente de outras partes, isto é, cada método é específico, realizando uma única operação, tornando o código-fonte mais reutilizável e legível. Com relação ao encapsulamento, assinale a alternativa CORRETA: a) O encapsulamento evita que alguma entidade externa altere os valores dos atributos de um objeto indevidamente. b) A interface exposta de uma classe, se alterada para privada, encapsulada, não requer cuidado para os métodos chamadores. c) Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento. d) O encapsulamento permite a instância de uma classe em memória. 10. O encapsulamento é um dos pilares da programação orientada a objetos, e sua utilização de forma correta serve como embasamento para os outros dois pilares: a herança e o polimorfismo. Com relação ao encapsulamento, assinale a alternativa CORRETA: a) O objetivo principal do encapsulamento é obter um alto acoplamento entre as classes. b) Através do encapsulamento, podemos proteger os valores internos dos objetos de acessos desnecessários. c) Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos atributos. d) O encapsulamento permite que os objetos se comuniquem através de mais caminhos. Prova finalizada com 10 acertos e 0 questões erradas Parte inferior do formulário