Buscar

Padrão de Projeto Singleton e POO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando