Baixe o app para aproveitar ainda mais
Prévia do material em texto
Acadêmico: Paulo de Miranda Junior (1229398) Disciplina: Programação Orientada a Objetos (ADS17) Avaliação: Avaliação II - Individual Semipresencial ( Cod.:460225) ( peso.:1,50) Prova: 13528048 Nota da Prova: 9,00 Legenda: Resposta Certa Sua Resposta Errada 1. 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 superclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- O método enfatizado pela letra C, calcularArea(), está sobrescrevendo a implementação da superclasse de Triangulo. IV- A classe FormaGeometrica também é conhecida na linguagem Java como JGF. Agora, assinale a alternativa CORRETA: a) As sentenças II e IV estão corretas. b) As sentenças I e IV estão corretas. c) Somente a sentença III está correta. d) As sentenças I, II e III estão corretas. 2. 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) Somente a sentença IV está correta. b) Somente a sentença I está correta. c) As sentenças I, II e IV estão corretas. d) As sentenças II e III estão corretas. 3. O polimorfismo é implementado de muitas formas dentro da linguagem de programação Java, sendo que uma das mais utilizadas é a criação e a implementação de interfaces. Considerando a criação e a utilização de interfaces dentro da linguagem de programação Java, analise o código fonte da figura a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) A classe SHA faz a sobrecarga do método encript() nas linhas 8 a 12. ( ) O método encript() faz parte de uma interface chamada IAlgoritmoCriptografia. ( ) Se a classe SHA fosse abstrata, ela não poderia fornecer implementação para o método gerarChaveCripto(Date data). ( ) Um vetor de IAlgoritmoCriptografia não pode conter um objeto do tipo SHA. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) F - V - F - F. b) V - F - V - V. c) V - V - F - F. d) V - V - F - V. 4. O polimorfismo é um mecanismo poderoso da programação orientada a objetos, pois permite que se adicionem novas funcionalidades a um software sem alterar partes desse mesmo software que já estejam funcionando. Com relação ao polimorfismo, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O polimorfismo de sobreposição consiste na colocação de novos parâmetros em outro método que possua o mesmo nome de um método já existente. ( ) O polimorfismo paramétrico é altamente dependente da linguagem de programação, por este motivo nem todas as linguagens de programação orientadas a objetos o implementam. ( ) A sobrecarga permite redefinir completamente um método, substituindo-o nas classes que fizerem uso deste tipo de polimorfismo. ( ) As interfaces são uma maneira eficiente de implementar o polimorfismo. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - F - F - V. b) V - V - F - V. c) F - V - F - V. d) V - V - V - F. 5. 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) F - V - V - F. b) V - V - F - F. c) V - V - F - V. d) V - F - F - V. 6. 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) Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento. c) A interface exposta de uma classe, se alterada para privada, encapsulada, não requer cuidado para os métodos chamadores. d) O encapsulamento permite a instância de uma classe em memória. 7. Como regra geral, os atributos de uma classe devem ser ocultos dos demais objetos do sistema, com o objetivo de garantir o encapsulamento. Entretanto, caso algum destes atributos deva ser exposto, existem vários tipos de exposição, através dos métodos getters e setters. Com relação à utilização dos getters e setters em uma classe, classifique V para as sentenças verdadeiras e F para as falsas: I- Os métodos getters fornecem acesso de escrita a um atributo. II- Os métodos setters permitem que se altere o valor de um atributo de um objeto. III- Uma das vantagens dos setters é que se pode fazer a chamada dos mesmos sem instanciar o objeto onde eles estão. IV- Os métodos setters sempre devem retornar o valor que acabaram de passar ao atributo. Agora, assinale a alternativa CORRETA: a) As sentenças III e IV estão corretas. b) Somente a sentença IV está correta. c) As sentenças I e III estão corretas. d) Somente a sentença II está correta. 8. O Polimorfismo de inclusão permite que se defina um novo comportamento para um objeto sem que se faça alterações nos que já estão funcionando, minimizando consideravelmente os custos e reduzindo o tempo para novas implementações. Considerando que a figura a seguir traz duas classes relacionadas a uma interface, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O método encript() da interface é implicitamente abstrato. ( ) Na linguagem de programação Java, demonstraríamos que SHA implementa IAlgoritmoCriptografia através da palavra reservada extends. ( ) Um método existente em outra classe cuja assinatura seja ?public void criptografar(IAlgoritmoCriptografia iac)? pode receber como parâmetro tanto um objeto da classe SHA quanto um objeto da classe DES. ( ) Podemos dizer que tanto SHA quanto DES implementam IAlgoritmoCriptografia.Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - V. b) F - V - F - V. c) V - V - F - F. d) V - F - V - V. 9. 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) Somente a sentença II está correta. b) As sentenças I e III estão corretas. c) As sentenças III e IV estão corretas. d) Somente a sentença IV está correta. 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) Através do encapsulamento, podemos proteger os valores internos dos objetos de acessos desnecessários. b) O objetivo principal do encapsulamento é obter um alto acoplamento entre as classes. 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.
Compartilhar