Baixe o app para aproveitar ainda mais
Prévia do material em texto
GABARITO | Avaliação Final (Objetiva) - Individual Semipresencial (Cod.:670863) Peso da Avaliação 3,00 Prova 34141793 Qtd. de Questões 10 Acertos/Erros 8/2 Nota 8,00 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. 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) } VOLTAR A+ Alterar modo de visualização 1 2 (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. 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. 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). 3 4 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. 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. 5 D V - V - F - F. 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 apenasa mudança do estado de um objeto. 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. 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. 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 6 7 8 9 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"). 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. 10
Compartilhar