Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prova Impressa GABARITO | Avaliação Final (Objetiva) - Individual (Cod.:768339) Peso da Avaliação 3,00 Prova 58449638 Qtd. de Questões 10 Acertos/Erros 3/7 Nota 3,00 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 ao código-fonte que implementa a execução do exemplo da aplicação Singleton para a classe Memoria, assinale a alternativa CORRETA: (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) Memoria memoria2 = Memoria.getInstance(); (5) (6) System.out.println(memoria1); (7) System.out.println(memoria2); (8) } A A linha 3, do código-fonte que executa a classe Memoria, cria uma instância da classe em questão. VOLTAR A+ Alterar modo de visualização 1 B A linha 4, do código-fonte que executa a classe Memoria, cria uma instância da classe em questão. C A linha 4, do código-fonte que executa a classe Memoria, gera um erro de execução uma vez que a linha 3 já criou a instância da classe em questão. D As linhas 6 e 7, do código-fonte que executa a classe Memoria, produzem resultados de saída diferentes. Existem três características mais importantes na Programação Orientada a Objetos (POO). Existe um conceito da programação orientada a objetos, que segundo Deitel e Deitel (2010), permite escrever programas que processam objetos que compartilham a mesma superclasse como se todos fossem objetos desta. FONTE: DEITEL, H. M.; DEITEL P. J. Java: Como Programar, 8a Edição. São Paulo: Pearson, 2010 Qual é esse conceito? A Herança. B Polimorfismo. C Encapsulamento. D Reescrita. Em uma aplicação Java orientada a objetos, um Analista precisa criar um tipo de classe que não pode ser instanciada diretamente e que deve possuir um conjunto de atributos privados, um construtor, métodos getter e setter, métodos implementados que deseja que várias subclasses compartilhem, e assinatura de métodos que deseja obrigar as subclasses a implementar de maneiras diferentes. Assinale a alternativa CORRETA que apresenta o tipo de classe que o Analista deverá criar: A Classe estática. B Interface. C Classe abstrata. 2 3 D Classe concreta. 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 V - F - F - V. B F - V - F - V. C V - V - F - F. D F - V - V - F. 4 Sintes (2002) afirma que a programação orientada a objetos define seis objetivos para o desenvolvimento de software. A programação orientada a objetos produz 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. FONTE: SINTES, Anthony. 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. Esta afirmação está relacionada a qual objetivo? A Reutilizável. B Manutenível. C Confiável. D Natural. Assim como na programação procedural, a programação orientada a objetos tem recursos para tratamentos de erros. Neste sentido, a plataforma Java possui recursos robustos que tratam os erros que podem acontecer em tempo de execução, tanto para exceções verificadas quanto para as não verificadas. É importante que o programador trate as possíveis exceções que podem ocorrer, pois, caso contrário, elas estourarão no usuário. Partindo desse pressuposto, classifique V para as sentenças verdadeiras e F para falsas: ( ) Na linguagem de programação Java, podemos tratar as exceções através dos comandos "try{} catch(){}". ( ) Na linguagem de programação Java, quanto um comando tenta acessar um índice inválido de um ArrayList, será retornada a exceção "ArrayIndexOutOfBoundException". ( ) As exceções não verificadas podem ser tratadas através de validações no código-fonte, evitando a ocorrência de erros. ( ) Uma exceção nunca pode ser delegada pelo método que invocou um determinado método, o qual pode sofrer uma exceção, devendo ser tratado sempre no próprio método. Assinale a alternativa que apresenta a sequência CORRETA: A V - V - V - F. B F - V - F - F. 5 6 C V - F - V - F. D V - F - F - V. O exemplo que tem uma classe automóvel, que internamente contém as informações de modelo, motorização e as operações acelerar e parar, dá forma aos objetos que o sistema efetivamente utiliza, em que os objetos são representados pelo Gol, Corsa e Celta, cada um com valores distintos para modelo e motorização. Nesse sentido, assinale a alternativa CORRETA que apresenta o que é instanciação: A É o mecanismo através do qual os programas se comunicam com o núcleo do sistema operacional, alocando e liberando recursos. B É o momento em que é criado um objeto em memória com base na classe que o define. C É o projeto de um objeto. Informa à máquina virtual como criar um objeto desse tipo específico. D Uma construção de software que encapsula estado e comportamento, permitindo que o programa seja modelado em termos reais e abstrações. 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 obedecendo as suas responsabilidadesdentro 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. ( ) O método chamado main é quem torna uma classe executável, sendo que a sua existência em uma classe é opcional. ( ) 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 - V. 7 8 B V - F - V - F. C F - F - V - F. D F - V - F - V. Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura), mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. Sobre um exemplo de polimorfismo, assinale a alternativa CORRETA: A B Todas estão corretas! 9 C D 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. Com isso em mente, avalie as sentenças referentes aos códigos-fonte que implementam um exemplo da aplicação Singleton, e sua execução, para a classe Memoria: (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) } 10 (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) } I- A linha 5, do código-fonte da classe Memoria, define um modificador de visibilidade diferente do padrão usado nas implementações de classes Java, porém trata-se de um recurso de segurança do padrão Sigleton. II- A linha 3, do código-fonte de execução da classe Memoria, pode ser substituído pelo código: Memoria memoria1 = new Memoria(). III- Se a linha 3, do código-fonte de execução da classe Memoria, fosse substituído pelo código Memoria memoria1 = new Memoria(), isso geraria um erro uma vez que o método construtor não pode ser invocado dessa forma para a classe em questão. IV- Os métodos get e set, do código-fonte da classe Memoria, são de menos importância para o contexto do padrão Singleton, uma vez que não lidam com o principal atributo (memoryInstance) para a utilização desse padrão na classe em questão. Assinale a alternativa CORRETA: A As sentenças II, III e IV estão corretas. B As sentenças I, III e IV estão corretas. C As sentenças I, II e IV estão corretas. D As sentenças I, II e III estão corretas. Imprimir
Compartilhar