Prévia do material em texto
Acadêmico: Disciplina: Programação Orientada a Objetos (ADS17) Avaliação: Avaliação Final (Objetiva) - Individual Semipresencial ( Cod.:) ( peso.:3,00) Prova: Nota da Prova: 10,00 Legenda: Resposta Certa Sua Resposta Errada Parte superior do formulário 1. Programaçã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 I e III estão corretas. b) As afirmativas I e IV estão corretas. c) As afirmativas II, III e IV estão corretas. d) Somente a afirmativa II está correta. 2. Na linguagem de programação Java, existem os modificadores de acesso que fornecem visibilidade ou invisibilidade para classes, métodos ou atributos. Através destes modificadores de acesso, pode-se tornar um atributo acessível para outra classe, por exemplo, ou ainda torná-lo visível apenas dentro da própria classe. Analise o código-fonte, escrito em linguagem de programação Java, a seguir e classifique V para as sentenças verdadeiras e F para as falsas: ( ) A classe "Carro" é visível em todas as demais classes da aplicação. ( ) Os atributos "codigo" e "modelo" são visíveis por todas as classes que delegarem a classe "Carro". ( ) O atributo "valor" é acessível apenas na subclasse do relacionamento de herança, se houver. ( ) O atributo "qtdePortas" é visível por todas as classes que delegarem a classe "Carro". Assinale a alternativa que apresenta a sequência CORRETA: a) V - V - V - F. b) F - V - F - F. c) V - F - F - V. d) V - F - V - V. 3. A api de collections da plataforma Java foi implementada como um conjunto de classes utilitárias que fornecem funcionalidades referentes à inserção, manipulação e busca de objetos dentro de estruturas de armazenamento na memória. Sua utilização em conjunto com interfaces e classes estáticas que permitem a ordenação e a comparação de objetos é um excelente exemplo de reutilização de código e encapsulamento. Com relação à api de collections e às funcionalidades de ordenação e comparação de objetos, analise as sentenças a seguir: I- A Interface Comparable deve ser implementada por um objeto externo chamado de provider, que procederá com a ordenação de dois objetos de cada vez. II- A Interface Comparable deve ser implementada pelos objetos que estiverem sendo ordenados. III- O método equals permite a comparação tanto através de critérios relacionados a atributos quanto por referências. IV- A ordenação dos objetos nas coleções é feita através do método compareTo(). Agora, assinale a alternativa CORRETA: a) Somente a sentença IV está correta. b) As sentenças I, II e IV estão corretas. c) As sentenças II e III estão corretas. d) Somente a sentença II está correta. 4. O framework Collections da plataforma Java possui um conjunto de interfaces e implementações que permitem, entre outras funcionalidades, determinar a ordenação de um grupo de objetos com base em suas características. Acerca da ordenação de objetos, analise as afirmativas a seguir: I- Para ordenar objetos de uma mesma classe, deve-se garantir que tal classe implemente a interface Comparable ou utilize um provider. II- A implementação do método "compareTo" varia conforme o contexto/critério em que a ordenação é aplicada. III- No Java, só é possível ordenar classes Wrappers. IV- Para ordenarmos uma coleção de objetos, podemos utilizar método estático "sort" da classe "ArrayList" Agora, assinale a alternativa CORRETA: a) As sentenças I e II 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 III está correta. 5. O framework Collections da plataforma Java é uma arquitetura unificada para representar e manipular coleções de objetos independentemente dos detalhes de implementação. Com relação a este framework, assinale a alternativa CORRETA que apresenta a classe que permite associar elementos com chaves: a) java.util.ArrayList. b) java.util.Vector. c) java.util.HashMap. d) java.util.Set. 6. 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 IV está correta. c) As sentenças I e III estão corretas. d) Somente a sentença II está correta. 7. Assim 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 II e IV estão corretas. b) As afirmativas I e II estão corretas. c) Somente a afirmativa IV está correta. d) As afirmativas I e III estão corretas. 8. A plataforma Java disponibiliza um interpretador que traduz, em tempo real, o bytecode para instruções nativas do processador. O bytecode é gerado pelo compilador Java e permite que o referido interpretador funcione como um intermediário entre a aplicação Java e a máquina e/ou sistema operacional, garantindo a característica de multiplataforma - comumente referenciada ao slogan 'write once, run anywhere'. Nesse contexto, assinale a alternativa CORRETA que indica o nome deste interpretador: a) Java API. b) J2SE. c) Java Virtual Machine. d) JavaBeans. 9. Para que se utilize os conceitos e, consequentemente, tire-se proveito das vantagens da programaçãoorientada a objetos, faz-se necessária a utilização de uma linguagem de programação que permita a implementação do encapsulamento, da herança e do polimorfismo. A linguagem de programação Java implementa estas características de maneira rígida, o que a torna bastante eficiente no ensino da programação orientada a objetos. No que se refere à plataforma Java, analise as sentenças a seguir: I- O Java é considerado multiplataforma, pois é possível executar aplicações Java em qualquer sistema operacional ou dispositivo que tenha uma implementação da Máquina Virtual Java (JVM). II- O c++ teve sua sintaxe baseada no Java, dado o grande número de programadores da linguagem. III- A máquina virtual permite que o Java gerencie de forma direta e sem interferência os recursos do sistema operacional, como acesso à rede e ao disco. IV- É possível desenvolver em Java com diversos editores gratuitos existentes no mercado. Agora, assinale a alternativa CORRETA: a) As sentenças I e IV estão corretas. b) As sentenças II e IV estão corretas. c) As sentenças II e III estão corretas. d) As sentenças I e II estão corretas. 10. A linguagem de programação Java possui diversos operadores, como operadores aritméticos, operadores lógicos, operadores relacionais e operadores binários. Cada operador é aplicado conforme necessário, porém, em situações que precisamos realizar a comparação entre dois valores numéricos, utilizamos, normalmente, os operadores relacionais. Considerando o código apresentado na figura anexa, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O resultado das expressões nas linhas 7, 8 e 11 é, respectivamente, "false", "true" e "true". ( ) Apenas as expressões das linhas 7, 10 e 11 apresentarão resultado "true". ( ) O resultado da linha 7 só seria "true" se o valor armazenado na variável 'var1' fosse múltiplo do valor armazenado na variável 'var2'. ( ) O valor que será impresso no console do Java após a execução da linha 9 é "true". Agora, assinale a alternativa que apresenta a sequência CORRETA: a) V - F - V - V. b) F - F - V - V. c) V - F - F - V. d) V - V - V - F. Prova finalizada com 10 acertos e 0 questões erradas. Parte inferior do formulário