Baixe o app para aproveitar ainda mais
Prévia do material em texto
1O 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) } ( ) A linha 10, do código-fonte da classe Memoria, garante que apenas um objeto desse tipo pode ser criado na aplicação. ( ) A instrução condicional, do código-fonte da classe Memoria, é redundante e pode ser retirado já que na invocação do método, um objeto do mesmo tipo da classe, já está criado na aplicação. ( ) O código implementado para executar a classe Memoria executa sem apresentar qualquer erro, uma vez que obedece às regras de implementação do padrão Singleton. ( ) A instrução condicional do código-fonte da classe Memoria garante que na invocação do método, a existência de um objeto do mesmo tipo da classe é avaliada para garantir a unicidade deste objeto na aplicação. Assinale a alternativa que apresenta a sequência CORRETA: A) V - F - F - V. B) F - F - V - V. C) F - V - V - F. D) F - F - F - V. 2A 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, 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 caracter. ( ) Pode-se afirmar que o tipo de dados do atributo "matricula", existente na classe aluno é do tipo alfanumérico. Assinale a alternativa que apresenta a sequência CORRETA: A) F - F - V - F. B) F - F - V - V. C) V - F - F - V. D) F - V - V - F. 3O encapsulamento ajuda a diminuir o acoplamento entre os objetos de um sistema, pois prega que somente o que é absolutamente necessário deve ser exposto aos demais. Com relação ao encapsulamento, assinale a alternativa CORRETA: A) O alto acoplamento é positivo, pois permite que os objetos se comuniquem com mais facilidade. B) Métodos também podem ser ocultados, no sentido de garantir um maior encapsulamento. C) Um bom cidadão é um objeto que tem todos os valores de seus atributos preenchidos no momento da instanciação. D) Para fazer uso do encapsulamento, basta modificarmos a visibilidade de nossos atributos. 4Na linguagem Java, existe um recurso muito importante e vantajoso para o desenvolvimento de software: coleções. As coleções são parecidas com os vetores ou arrays, porém elas permitem o armazenamento de objetos. Neste sentido, com um arraylist, podemos criar uma lista de objetos, sendo a sintaxe: ArrayList A) A condição da linha 33 é verdadeira, e será atribuído mais um objeto à lista. B) Ao final da execução da classe "ExemploArrayList", a lista "listaCarros" terá dois objetos armazenados. C) Ao final da execução da classe "ExemploArrayList", a lista "listaCarros" não terá nenhum elemento. D) Ao final da execução da classe "ExemploArrayList", a lista "listaCarros" terá apenas um objeto armazenado. 5No paradigma da orientação a objetos, um objeto é a instância de uma classe, isto é, cria-se em memória um objeto do tipo da classe desejada. Neste sentido, quando instancia-se uma classe, estamos criando em memória toda a classe, ou seja, todos os seus atributos e métodos. No entanto, em alguns casos, precisamos utilizar apenas algum método ou atributo de uma determinada classe, e instanciá-la em memória seria uso desnecessário da memória. Neste caso, podemos definir o modificador do método como static, permitindo que este seja acessado diretamente pelo nome da classe, sem instanciá-la. Referente ao código-fonte anexo, analise as afirmativas a seguir: I- Ao executar a classe "Exemplo", ocorrerá um erro durante a execução, pois não foi instanciada a classe "Carro". II- Os métodos"getidModelo()" e "calcularDistancia()" são acessíveis na classe "Exemplo" sem ter que instanciar a classe Carro. III- O método "calcularDistancia()" é acessível na classe "Exemplo" sem ter que instanciar a classe Carro. IV- O método "getidModelo ()" é acessível na classe "Exemplo" sem ter que instanciar a classe Carro. Assinale a alternativa CORRETA: A) As afirmativas I e IV estão corretas. B) As afirmativas II e IV estão corretas. C) Somente a afirmativa III está correta. D) As afirmativas I e III estão corretas. 6Existem oito tipos de dados primitivos suportados pelo Java. Tipos de dados primitivos são predefinidos pela linguagem e nomeados por uma palavra-chave. Considerando os tipos de dados primitivos, assinale a alternativa INCORRETA: A) Byte. B) Text. C) Double. D) Short. 7Para se ter a noção de classes e objetos, é importante compreender que o paradigma modular resolveu diversos problemas do paradigma procedural, entretanto, ao utilizá-lo os programadores conseguiram identificar algumas deficiências que prejudicavam sua produtividade. A programação orientada a objetos (POO) abordou estas deficiências adicionando os conceitos de herança e polimorfismo e retirando o aspecto procedural do controle do programa. Nesse sentido, assinale a alternativa CORRETA que apresenta uma definição de classe: A) É o projeto de um objeto. Informa à máquina virtual como criar um objeto desse tipo específico. Cada objeto criado a partir desse método terá seus valores distintos para as variáveis de instância do método. B) É o projeto de um objeto. Informa à máquina virtual como criar um objeto desse tipo específico. Cada objeto criado a partir dessa classe terá seus valores distintos para as variáveis de instância da classe. C) É o projeto de um atributo. Informa à máquina virtual como criar um atributo desse tipo específico. Cada atributo criado a partir dessa classe terá seus valores distintos para as variáveis de instância da classe. D) É o projeto de um método. Informa à máquina virtual como criar um método desse tipo específico. Cada método criado a partir dessa classe terá seus valores distintos para as variáveis de instância da classe. 8O 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.Set. C) java.util.Vector. D) java.util.HashMap. 9Classes abstratas são um recursopoderoso da linguagem Java para criação de abstrações. Utilizando classes abstratas pode-se alcançar bons níveis de reutilização de código-fonte, além de fortalecer e favorecer o conceito de polimorfismo, permitindo a reutilização e a extensão de estado e comportamento entre classes. Sobre as características das classes abstratas, analise as sentenças a seguir: I- Classes abstratas, por via de regra, não podem gerar objetos, mas construtores abstratos, construtores especiais, podem ser utilizados por essas classes para permitir que objetos sejam criados. II- Os métodos concretos de uma classe abstrata podem ser compartilhados, sem alterações, por todas as suas classes concretas geradas. III- Em uma hierarquia de classes abstratas, a primeira ocorrência de uma classe concreta deve implementar todos os métodos abstratos presentes na hierarquia. IV- Em uma hierarquia de classes abstratas, a primeira ocorrência de uma classe concreta deve alterar todos os métodos concretos presentes na hierarquia. Assinale a alternativa CORRETA: A) As sentenças I e II 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 III e IV estão corretas. 10O 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) 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"). 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) 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....".
Compartilhar