Baixe o app para aproveitar ainda mais
Prévia do material em texto
Acadêmico: Tiago Rosa da Silva (3252647) Disciplina: Programação Orientada a Objetos (ADS17) Avaliação: Avaliação Final (Objetiva) - Individual Semipresencial ( Cod.:670863) ( peso.:3,00) Prova: 34141793 Nota da Prova: 8,00 Legenda: Resposta Certa Sua Resposta Errada 1. 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: 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 apresenta problemas de sintaxe. II- O método competirPor(int pais) não está gerando erro de sintaxe e usa corretamente a palavra-chave void. III- O método competirPor(int pais) gera erros de sintaxe, e necessita da palavra-chave abstract antes da palavra-chave void. IV- O método "competir(String modalidade)" não gera erro de sintaxe. Assinale a alternativa CORRETA: a) As sentenças I e II estão corretas. b) As sentenças III e IV estão corretas. c) As sentenças I e III estão corretas. d) As sentenças II e IV estão corretas. 2. Os padrões de projeto auxiliam o desenvolvimento de software orientado a objetos, solucionando problemas rotineiros que normalmente ocorrem durante as etapas desse desenvolvimento. Dentre os padrões, pode-se citar o Singleton, que descreve uma implementação na qual uma classe é instanciada uma única vez durante a execução de uma aplicação. Sendo assim, referente ao código-fonte que implementa um exemplo da aplicação Singleton para a classe Conexao, classifique V para as sentenças verdadeiras e F para as falsas: (1) public class Conexao{ (2) private static Conexao instancia; (3) private int numeroConexoes; (4) (5) private Conexao(){ (6) } (7) (8) public static Conexao getInstance() { (9) if(instancia == null) { (10) instancia = new Conexao(); (11) } (12) return instancia; (13) } (14) (15) public int getNumeroConexoes() { (16) return this.numeroConexoes; (17) } (18) (19) public void setNumeroConexoes(int numeroConexoes) { (20) this.numeroConexoes = numeroConexoes; (21) } (22)} ( ) A linha 3 do código-fonte da classe "Conexao" é o atributo que apresenta uma das características do padrão Singleton. ( ) A linha 2 do código-fonte da classe "Conexao" é o atributo que apresenta uma das características do padrão Singleton. ( ) As linhas 8 até 13 do código-fonte da classe "Conexao" apresenta a implementação do método que instancia a classe quantas vezes forem necessárias. ( ) As linhas 15 até 17 do código-fonte da classe "Conexao" apresenta a implementação do método que instancia a classe quantas vezes forem necessárias. Assinale a alternativa que apresenta a sequência CORRETA: a) F - V - F - V. b) V - V - F - F. c) V - F - F - V. d) F - V - V - F. 3. 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) Somente a sentença IV está correta. b) As sentenças I e II estão corretas. c) Somente a sentença III está correta. d) As sentenças I, II e IV estão corretas. 4. Existem quatro plataformas para a programação em Java: Java Platform Standard Edition (Java SE), Java Platform Enterprise Edition (Java EE), Java Platform Mobile Edition (Java ME) e Java FX. Cada plataforma é destinada a um tipo diferente de aplicação e possui o seu conjunto de APIs. Com relação à plataforma Java ME, analise as afirmativas a seguir: I- Utiliza um subconjunto das bibliotecas disponibilizadas pela Java Platform Standard Edition. II- Plataforma que comporta o desenvolvimento de aplicações móveis, bem como aplicações escritas em JavaFX Script. III- Permite a criação de RIA (Rich Internet Applications) usando interfaces aceleradas por hardware. IV- Em determinados dispositivos, é possível executar aplicações desenvolvidas para Java ME sem a presença de uma JVM (Java Virtual Machine). Agora, assinale a alternativa CORRETA: a) Somente a afirmativa I está correta. b) As afirmativas II e III estão corretas. c) As afirmativas II, III e IV estão corretas. d) As afirmativas I e IV estão corretas. 5. O 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 = Memoria.getInstance(); (4) System.out.println(memoria1); (5) } ( ) Na linha 3, do código-fonte de execução da classe Memoria, o trecho Memoria.getInstance() cria, e retorna, um objeto único da classe Memoria. ( ) A linha 5, do código-fonte de classe Memoria, utiliza um modificador de visibilidade igual ao padrão usado nas implementações de classes Java, e é usado como um recurso de segurança do padrão Sigleton. ( ) A linha 3, do código-fonte de execução da classe Memoria, poderia ser substituído pelo código Memoria memoria1 = new Memoria(), sem qualquer prejuízo para o funcionamento chave do padrão Singleton. ( ) A linha 5, do código-fonte da classe Memoria, utiliza um modificador de visibilidade que foge ao padrão usado nas implementações de classes Java, uma vez que complementa a capacidade do padrão Singleton em permitir a criação de apenas um objeto para as classes as quais os comportamentos necessitam dessa condiçã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. 6. No paradigma de orientação a objetos, uma classe é uma estrutura que abstrai um conjunto de objetos que possuem características em comum, e é composta, geralmente, por três elementos básicos: nome, atributos e métodos. Com relação aos métodos, assinale a alternativa CORRETA: a) Também conhecidos como operações, os métodos descrevem as funcionalidades de uma determinada classe. b) Os métodos definem o estado de um determinado objeto, enquanto ele está na memória do computador. c) Na definição de uma classe, deve-se estabelecer uma constante que indica o seu número máximo de métodos. d) Métodos de uma classe Java têm como objetivo apenas a mudança do estadode um objeto. 7. Todas as classes em Java herdam implicitamente a classe Object e, dessa forma, herdam também métodos. Dentre os métodos herdados podemos destacar o "equals()" e o "hashCode()", ambos utilizados pelo Framework de coleções da linguagem de programação Java. Acerca desses dois métodos, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O operador "==" é uma maneira simplificada de se chamar o método "equals()". ( ) Ao escrevermos uma classe, devemos utilizar a anotação @Replace para sobrescrever os métodos "equals()" e "hashCode()". ( ) Coleções que utilizam tabelas de dispersão (também conhecidas por tabelas hash) para armazenamento fazem uso direto do método "hashCode()". ( ) O método "equals()" é utilizado pelas coleções que não permitem repetições para determinar a igualdade entre objetos. Agora, assinale a alternativa que apresenta a sequência CORRETA: a) F - V - V - F. b) V - V - V - F. c) F - F - F - V. d) F - F - V - V. 8. A coesão é a característica que faz com que uma classe tenha somente uma responsabilidade dentro do sistema, o que faz com que a sua correção, em caso de erros ou a manutenção em caso de evolução, seja simplificada. No que se refere à coesão de uma classe, assinale a alternativa CORRETA: a) Se uma classe tiver uma e somente uma responsabilidade, a probabilidade de esta sofrer manutenção diminui. b) Uma classe coesa é, necessariamente, uma classe com alto acoplamento. c) A coesão, embora seja uma característica importante, não auxilia o encapsulamento de uma classe. d) Tanto a coesão quanto o encapsulamento são obtidos na linguagem de programação Java através do modificador de acesso private. 9. O polimorfismo é caracterizado quando duas ou mais classes possuem o mesmo nome de método ou operação, e outra classe, abstrata, possui um método com mesmo nome dos métodos das classes anteriores, podendo receber a invocação de qualquer um dos dois objetos (classes instanciadas), executando a operação correta. Conforme exemplificado, a implementação de polimorfismo pode ocorrer através de uma classe abstrata, cujos métodos são declarados, mas não definidos. Com relação ao código- fonte a seguir e ao polimorfismo da orientação a objetos, assinale a alternativa CORRETA: a) A classe abstrata "Veiculo" referencia o comportamento das classes "Carro" e "Caminhao", e ao ser executada a classe "Teste", será impresso primeiramente a mensagem "Acelerando o carro...." e depois "Acelerando o caminhão....". b) Não existe polimorfismo implementado entre as classes do código-fonte apresentado. c) As classes abstratas "Carro" e "Caminhao" referenciam o comportamento da classe "Veiculo", e ao ser executada a classe "Teste", será impresso primeiramente a mensagem "Acelerando o caminhão...." e depois "Acelerando o carro....". d) Ao ser executada a classe "Teste", ocorrerá um erro designando que a instância da classe "Veiculo" nas linhas 19 e 20 são inválidas, pois recebem a instância de classes de outro tipo ("Carro" e "Caminhao"). 10.A 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: ( ) A linha 1 define, através da palavra reservada "package", que a classe está agrupada, mas sem precisar obedecer as suas responsabilidades dentro de uma aplicação. ( ) Já que o método "Aluno()" não possui parâmetros as linhas 7 a 9 geram erros de compilação. ( ) Pode-se afirmar que o tipo de dados do atributo "nome", existente na classe aluno é do tipo booleano. ( ) Pode-se afirmar que o tipo de dados do atributo "matricula", existente na classe aluno é do tipo numérico. Assinale a alternativa que apresenta a sequência CORRETA: a) V - F - V - F. b) F - F - V - V. c) V - F - V - V. d) F - F - F - V. Prova finalizada com 8 acertos e 2 questões erradas.
Compartilhar