Baixe o app para aproveitar ainda mais
Prévia do material em texto
O 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, a seguir, e classifique V para as sentenças verdadeiras e F para as falsas: 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); } } ( ) A classe em questão apresenta problemas de sintaxe. ( ) O método competirPor(int pais) não está gerando erro de sintaxe e usa corretamente a palavra-chave void. ( ) O método competirPor(int pais) não possui um retorno de tipo definido. ( ) O método "competir(String modalidade)" gera erro de sintaxe, pois não necessita da palavra-chave abstract. Assinale a alternativa que apresenta a sequência CORRETA: A F - F - V - V. B V - V - V - V. C V - V - F - F. D V - F - V - V. 2 A Classe é a estrutura fundamental da orientação a objetos e é composta de Atributos e Métodos. A respeito de métodos de classes, assinale a alternativa CORRETA: A Os métodos são as operações que são definidas na classe, e quando ela é instanciada eles, definem o seu comportamento. B Todas as opções anteriores estão incorretas. C Os métodos não fazem parte da classe e eles devem ser construídos em um módulo separado do sistema. D Os métodos representam as características do objeto instanciados. 3Assim como arrays, as classes e as interfaces do Collections Framework da linguagem de programação Java possuem a vantagem de tornar o código-fonte mais legível e fácil de manipular. Existe o tipo de coleção ArrayList que pode armazenar uma lista de elementos de qualquer tipo, podendo ser String, Real, Double, Boolean, entre outros, ou ainda objetos criados a partir de classes da aplicação, como a lista de objetos do tipo Pessoa. Além deste, temos também o tipo de coleção Hashmap, que consome menos recursos quando se deseja pesquisar entre os elementos armazenados, pois utiliza um objeto-chave e um objeto-valor. Referente ao código-fonte anexo, analise as afirmativas a seguir: I- No final da execução da classe "ExemploHashmap", do código-fonte apresentado, a coleção "mapa" possui 3 elementos. II- No final da execução da classe "ExemploHashmap", do código-fonte apresentado, a coleção "mapa" possui 2 elementos. III- No final da execução da classe "ExemploHashmap", do código-fonte apresentado, linha 15, serão impressas 3 linhas com os seguintes valores respectivamente: "1 - Gol", "2 - Palio" e "3 - Celta". IV- No final da execução da classe "ExemploHashmap", do código-fonte apresentado, linha 15, serão impressas 2 linhas com os seguintes valores respectivamente: "1 - Gol" e "2 - Palio". Assinale a alternativa CORRETA: A As afirmativas I e II estão corretas. B As afirmativas I e III estão corretas. C Somente a afirmativa IV está correta. D As afirmativas II e IV estão corretas. 4O 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 F - V - F - V. B V - V - F - V. C V - F - F - V. D V - V - V - F. 5No desenvolvimento de software orientado a objetos, muitos padrões surgiram da solução para problemas que normalmente ocorriam, sendo um destes padrões de desenvolvimento o Singleton. O padrão Singleton caracteriza-se pela única instância de uma classe durante a execução de um sistema, pois em alguns casos esta característica é necessária para resolver determinados problemas. Partindo desse pressuposto, classifique V para as sentenças verdadeiras e F para falsas: ( ) Uma classe implementada com o padrão Singleton não possui o modificador estático (static). ( ) Uma classe implementada com o padrão Singleton sempre utiliza o modificador estático (static). ( ) Uma classe implementada com o padrão Singleton deve ter declarado um atributo private do próprio tipo da classe. ( ) Uma classe implementada com o padrão Singleton deve validar se já está instanciada, e caso negativo, utiliza o comando "new" para instanciar a classe. Assinale a alternativa que apresenta a sequência CORRETA: A F - V - V - V. B V - V - F - F. C V - F - V - F. D F - V - V - F. 6A estrutura de uma classe na linguagem de programação Java comporta um nome, um conjunto de atributos, também conhecidos como o estado desta classe e um conjunto de métodos, também conhecidos como o comportamento desta classe. Considerando a estrutura da Classe Principal demonstrada na figura a seguir, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Já que o método "Aluno()" não possui parâmetros as linhas 7 a 9 geram erros de compilação. ( ) O método chamado main é quem torna uma classe executável, sendo que a sua existência em uma classe é opcional. ( ) A linha 1 define, através da palavra reservada "package", que a classe está agrupada, porém sem obedecer as suas responsabilidades dentro de uma aplicação. ( ) Pode-se afirmar que o tipo de dados do atributo "nome", existente na classe aluno é do tipo caracter. Assinale a alternativa que apresenta a sequência CORRETA: A V - F - F - V. B F - V - F - F. C F - V - F - V. D V - F - V - F. 7A 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 As sentenças I, II e IV estão corretas. C Somente a sentença IV está correta. D Somente a sentença I está correta. 8 Como vantagens da Programação Orientada a Objetos, Sintes (2002) afirma que a programação orientada a objetos define seis objetivos para o desenvolvimento de software: Natural; confiável; reutilizável; manutenível; Extensível; Oportuno. FONTE: SINTES, A. Aprenda programação orientada a objetos em 21 dias. Tradução João Eduardo Nóbrega Tortello. São Paulo: Pearson Education do Brasil, 2002. Sobre a definição para “Reutilizável”, assinale a alternativa CORRETA: A Da mesma forma que construtores ou engenheiros elétricos reaproveitam tijolos e circuitos, a programação orientada a objetos incentiva a reutilizar soluções para os problemas. É possível reutilizar classes orientadas a objetos bem feitas em diversos programasdiferentes e ainda estender seu comportamento através do que é conhecido como polimorfismo. Através da programação orientada a objetos, você pode modelar ideias gerais e usar essas ideias para resolver problemas específicos. Objetos específicos são em geral construídos utilizando partes genéricas reaproveitadas. B Software útil deve ser confiável. Infelizmente, existe uma cultura de tolerância ao erro na área de desenvolvimento de software. Por exemplo, quando foi a última vez que sua geladeira quebrou? Programas orientados a objetos bem projetados e cuidadosamente escritos tendem a ser mais confiáveis. Sua natureza modular permite que sejam feitas manutenções em uma parte do software sem afetar outras. Os objetos isolam o conhecimento e a responsabilidade de onde pertencem. Além disso, a orientação a objetos intrinsecamente aprimora os testes, ao isolar conhecimento e responsabilidade em um único local. Uma vez que você tenha validado um componente, você pode reutilizá-lo com mais confiança. C Quando você construir uma biblioteca de objetos, também desejará estender a funcionalidade de seus próprios objetos. A programação orientada a objetos apresenta ao programador diversos recursos para estender código, como herança, polimorfismo, sobreposição, delegação e uma variedade de padrões de projeto. D A programação orientada a objetos produz um software mais inteligível, pois permite que você defina os componentes de seu software com base em objetos e comportamentos do mundo real. Permite ainda que você modele um problema em nível funcional e não em nível de implementação, deixando tempo para se concentrar no problema a ser resolvido. 9A linguagem de programação Java utiliza a Java Virtual Machine (JVM) para o gerenciamento do ciclo de vida dos objetos instanciados pelas aplicações e localização destes na memória. Considerando o comportamento da JVM, o código fonte a seguir e a existência de uma classe Cachorro, cujo construtor recebe uma String, assinale a alternativa CORRETA: A O console imprimirá diferentes. B O console imprimirá iguais. C Ocorre um erro na execução. D Ocorre um erro de compilação. 10O padrão de projeto Singleton aumenta a qualidade e a produtividade do desenvolvimento de software orientado a objetos, pois é capaz de solucionar problemas rotineiros que normalmente ocorrem durante as etapas do desenvolvimento de um software. Esse padrão descreve uma implementação na qual uma classe é instanciada uma única vez durante a execução de uma aplicação. Referente aos códigos-fonte que implementam um exemplo da aplicação Singleton e sua execução para a classe Memoria, classifique V para as sentenças verdadeiras e F para as falsas: (1)public class Memoria{ (2) private static Memoria memoryInstance; (3) private double quantidadeMemoria; (4) (5) private Memoria(){} (6) (7) (8) public static Memoria getInstance() { (9) if(memoryInstance == null) { (10) memoryInstance = new Memoria(); (11) } (12) return memoryInstance; (13) } (14) (15) public double getQuantidadeMemoria() { (16) return this.quantidadeMemoria; (17) } (18) (19) public void setQuantidadeMemoria (float quantidadeMemoria) { (20) this.quantidadeMemoria = quantidadeMemoria; (21) } (22)} (1) public static void main(String[] args){ (2) (3) Memoria memoria1, memoria2, memoria3; (4) (5) memoria1 = Memoria.getInstance(); (6) memoria2 = Memoria.getInstance(); (7) memoria3 = new Memoria(); (8) (9) System.out.println(memoria1); (10) System.out.println(memoria2); (11) System.out.println(memoria3); (12) } ( ) As linhas 3 a 6, do código-fonte de execução da classe Memoria, precisam estar implementados na mesma linha para que o método getInstance() crie, e retorne, o objeto único da classe Memoria. ( ) As linhas 9 e 10, do código-fonte de execução da classe Memoria, mostram o mesmo valor, enquanto o código da linha 11 imprime um valor diferente. ( ) A linha 7, do código-fonte de execução da classe Memoria, gera um erro uma vez que o padrão Singleton não permite o acesso direto ao método construtor das classes que o utilizam. ( ) A linha 9, do código-fonte da classe Memoria, verifica a existência de um objeto do mesmo tipo da classe em questão, para garantir que um único objeto desse tipo exista na aplicação. Assinale a alternativa que apresenta a sequência CORRETA: A V - F - F - V. B F - V - V - F. C F - F - V - V. D V - V - F - F.
Compartilhar