Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Orientada a Objetos - Avaliação II 1Uma das principais vantagens em se desenvolver um software utilizando o paradigma da orientação a objetos, é a reutilização de código-fonte, tornando-o mais legível e fácil de realizar manutenção. Neste sentido, podemos exemplificar a facilidade de manutenção com a necessidade de criar uma coluna em uma tabela, gravando um valor fixo. Neste caso, basta alterar o método que realiza a inserção de registro nesta tabela, e o software está alterado, mesmo que o método seja invocado por mais de uma classe. Analise o código-fonte a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) Devido à herança, a linha 31 está correta. ( ) A classe "Carro" herda o método "getNomeModelo()" da classe "Veiculo". ( ) A classe "Veiculo" herda os métodos com modificador "public" da classe "Carro". ( ) Ocorre uma relação de herança entre as duas classes, sendo que a classe "Carro" herda atributos e métodos da classe "Veiculo". Assinale a alternativa que apresenta a sequência CORRETA: A F - V - F - F. B V - V - F - V. C V - F - F - V. D V - V - V - F. 2O 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 Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos atributos. C O objetivo principal do encapsulamento é obter um alto acoplamento entre as classes. D O encapsulamento permite que os objetos se comuniquem através de mais caminhos. 3A 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 I, II e IV estão corretas. B Somente a sentença I está correta. C As sentenças II e III estão corretas. D Somente a sentença IV está correta. 4O 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 - F. B V - V - F - V. C V - F - V - V. D F - V - F - V. 5A 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 V - V - F - F. C V - F - F - V. D F - V - V - F. 6Programação é o processo de escrita, teste e manutenção de um programa de computador. A Programação Orientada a Objetos (POO) diz respeito a um padrão de desenvolvimento que é seguido por muitas linguagens, como C# e Java. Com relação aos conceitos de programação orientada a objetos e sua implementação na linguagem Java, analise as afirmativas a seguir: I- Classes abstratas servem como modelo para outras classes que dela herdam e devem ser instanciadas utilizando a palavra reservada "new". II- Todas as classes em Java herdam, direta ou indiretamente, a classe Object. III- Interfaces podem ser utilizadas quando classes diferentes (não relacionadas) precisam de funcionalidades comuns (métodos) ou utilizam constantes comuns. IV- Na linguagem Java, é possível haver polimorfismo por meio da implementação de herança entre classes. Agora, assinale a alternativa CORRETA: A As afirmativas II, III e IV estão corretas. B As afirmativas I e III estão corretas. C Somente a afirmativa II está correta. D As afirmativas I e IV estão corretas. 7Os modificadores de acesso são palavras reservadas da linguagem de programação Java e definem os padrões de visibilidade de acesso às classes, aos atributos e aos métodos. Por intermédio dos modificadores de acesso, é possível ocultar determinadas partes do código, dividindo o programa em partes menores e independentes e esta ação, de ocultar e/ou dividir, é conhecida como encapsulamento Acerca do conceito de encapsulamento e dos modificadores de acesso da linguagem de programação Java, analise as afirmativas a seguir: I- Uma declaração com o modificador "public" permite o acesso de qualquer lugar do projeto Java e por qualquer entidade que possa visualizar a classe a que ela pertença. II- Os membros de uma classe declarados com o modificador "protected" não podem ser acessados ou utilizados por nenhuma outra classe. III- Métodos declarados como "default" só podem ser acessados a partir dos métodos da própria classe. IV- O Java define quatro modificadores de visibilidade: "private", "public", "protected" e "default". Agora, assinale a alternativa CORRETA: A As afirmativas II e III estão corretas. B As afirmativas II, III e IV estão corretas. C Somente a afirmativa I está correta. D As afirmativas I e IV estão corretas. 8A 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 possui a desvantagem de tornar as classes com maior quantidade de código-fonte. B O polimorfismo permite que um único nome de classe represente diferentes códigos- fonte. C O polimorfismo apenas ocorre quando o modificador dos métodos da classe forem "protected". D O principal objetivo do polimorfismo é a capacidade de herdar métodos e classes para uma subclasse. 9Atravé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 deinterfaces. 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 I e III estão corretas. B As sentenças III e IV estão corretas. C Somente a sentença IV está correta. D Somente a sentença II está correta. Atenção: Esta questão foi cancelada, porém a pontuação foi considerada. 10O conceito de classes abstrata, através de suas características especiais, fornece ao conceito de herança uma maior confiabilidade, uma vez que as classes modeladas com herança precisam ser melhor idealizadas e projetadas. Dessa forma, avalie o código- fonte da classe "Atleta": package fontes; public class Atleta{ private int pais; private String modalidade; private boolean medalistaOlimpico; public abstract void competir(String modalidade) { System.out.println("É especialista em " + modalidade); } public void competirPor(int pais){ System.out.println("O atleta compete por " + pais); } } I- A classe em questão não apresenta nenhum problema de sintaxe. II- O método "competirPor(int pais)" está gerando um erro de sintaxe, e adicionando a palavra-chave "abstract", antes da palavra chave "void", resolverá o erro gerado. III- O método "competirPor(int pais)" não gera erros de sintaxe, logo não necessita da palavra-chave "abstract", antes da palavra-chave "void". IV- O método "competir(String modalidade)" gera erro de sintaxe. Assinale a alternativa CORRETA: A As sentenças II e III estão corretas. B As sentenças I e II estão corretas. C As sentenças II e IV estão corretas. D As sentenças III e IV estão corretas.
Compartilhar