Buscar

Prova Final Objetiva - Programação Orientada a Objetos

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 5 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

GABARITO | Avaliação Final (Objetiva) - Individual Semipresencial
Peso da Avaliação
3,00
Qtd. de Questões
10
Acertos/Erros
9/1
Nota
9,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.
B 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.
C A linha 4, do código-fonte que executa a classe Memoria, cria uma 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.
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 F - F - V - V.
C
Alterar modo de visualização
1
2
C F - F - F - V.
D V - V - V - F.
Uma das funções do tratamento de exceções da linguagem de programação Java é informar ao desenvolvedor que determinado
código fonte está tentando acessar um recurso fora da “sandbox” fornecida pela Máquina Virtual Java. Recursos como rede, disco etc.
são de controle do sistema operacional e existem tipos especiais de exceções para garantir que o código continue executando em caso de
falhas no acesso a estes recursos. Com relação às características do tratamento de exceções na plataforma Java, classifique V para as
sentenças verdadeiras e F para as falsas:
( ) Essencialmente, uma exceção é causada por uma instrução que não consegue ser executada.
( ) O tratamento de exceções deixa o código fonte mais performático e, por consequência, mais robusto.
( ) Pode-se tratar exceções de forma local, através do bloco try catch ou delegar o tratamento, através da cláusula throws.
( ) As exceções não verificadas são aquelas que lidam com problemas ao acessar recursos externos à JVM.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A V - F - F - V.
B F - V - F - F.
C V - V - F - V.
D V - F - V - F.
A linguagem de programação Java obedece ao conceito de tipagem forte, em que todas as variáveis declaradas em uma classe ou
interface devem ter seu tipo definido no momento da declaração. Com relação à tipagem e à definição das variáveis na linguagem Java,
classifique V para as sentenças verdadeiras e F para as falsas:
( ) Não existe limitação para o número de atributos dentro de uma classe na linguagem de programação Java.
( ) O valor assumido pelos atributos de um objeto representam o estado interno de um objeto.
( ) Cada instância de uma classe pode possuir valores distintos para seus atributos.
( ) Através da declaração “String nome;” dentro de uma classe, cria-se uma variável cujo valor sempre será compartilhado entre todas
as instâncias.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A V - V - V - F.
B V - F - F - V.
C V - F - F - F.
D F - V - F - V.
O desenvolvimento de programas utilizando a linguagem de programação Java é facilitado, e otimizado, pelo uso das chamadas
IDE (Integrated Development Environment) que são ambientes sofisticados para o desenvolvimento de programas e softwares. Entre
elas, podem-se citar os ambientes de desenvolvimento Eclipse e Netbeans. Sobre a ferramenta Console, parte integrante dos recursos que
a IDE Eclipse apresenta, assinale a alternativa CORRETA:
A A aplicabilidade dessa ferramenta está no fato de permitir que o desenvolvedor visualize na forma de uma estrutura ordenada todos
os objetos (classes, pacotes, projetos e bibliotecas) presentes em um Workspace.
B Sua funcionalidade está ligada à característica de permitir alguma manipulação dos dados de entrada com a visualização de seus
resultados para programas criados no Eclipse.
C Possui uma característica similar a um navegador de arquivos, presente nos sistemas operacionais, como o Windows Explorer,
direcionada à apresentação da estrutura e métodos de uma classe de maneira ordenada.
D Sua funcionalidade advém do fato de permitir a edição dos códigos dos programas desenvolvidos na linguagem Java, permitindo,
dessa forma, destacar palavras reservadas, apresentar as características de um objeto, compilação automática etc.
3
4
5
Ao utilzarmos o modificador "static", indicamos que determinado atributo ou método de uma classe Java pertence à classe e não a
uma instância específica. Com relação a esse modificador, classifique V para as sentenças verdadeiras e F para as falsas:
( ) Um atributo com visibilidade estática não pode ser alterado com um método não estático.
( ) O Singleton é um padrão de projeto que prevê uma instância estática.
( ) Ao alterarmos o valor de um atributo estático, todas as instâncias da classe terão o seu valor alterado.
( ) Atributos estáticos inicializados no método construtor não podem ser alterados ao longo da execução.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A F - F - V - V.
B F - V - F - V.
C V - F - F - V.
D V - V - V - F.
O paradigma da orientação a objetos aplicada no desenvolvimento de software possui a vantagem de tornar o código-fonte
reutilizável, mais legível, e fácil de realizar manutenção. O polimorfismo permite que outras classes representem o comportamento de
classes que elas referenciam. Com relação às classes criadas no código-fonte, analise as sentenças a seguir:
(1)public class Veiculo {
(2) public void parar(){}
(3)}
(4)
(5)public class Motocicleta extends Veiculo{
(6) public void parar(){
(7) System.out.println("Parando a motocicleta!!");
(8) } 
(9)}
(10)
(11)//Veiculo utilitario esporte (SUV: Sport Utility Vehicle)
(12)public class Suv extends Veiculo{
(13) public void parar(){
(14) System.out.println("Parando o veículo utilitário!!");
(15) } 
(16)}
(17)
(18)public class Principal {
(19) public static void main(String[] args){
(20) Veiculo veiculo1 = new Motocicleta();
(21) Veiculo veiculo2 = new Suv(); 
(22) 
(23) veiculo1.parar();(24) veiculo2.parar(); 
(25) } 
(26)}
I- Apesar do código-fonte não lidar com classes abstratas, existe o polimorfismo implementado entre as classes do exemplo.
II- Ao executarmos a classe Principal, ocorrerá um erro designando que a instância da classe Veiculo nas linhas 20 e 21 são inválidas,
pois recebem a instância de classes de outro tipo (Motocicleta e Suv).
III- A classe Veiculo referencia o comportamento das classes Motocicleta e Suv, e ao executarmos a classe Principal, será impresso
primeiramente a mensagem (Parando a motocicleta!!) e depois (Parando o veículo utilitário!!).
IV- As classes Motocicleta e Suv referenciam o comportamento da classe Veiculo, e ao executarmos a classe Principal, será impresso
primeiramente a mensagem (Parando o veículo utilitário!!) e depois (Parando a motocicleta!!).
Assinale a alternativa CORRETA:
A As sentenças III e IV estão corretas.
B As sentenças I e III estão corretas.
C As sentenças II e IV estão corretas.
D As sentenças I e II estão corretas.
6
7
Os modificadores de acesso são palavras reservadas da linguagem de programação Java e definem os padrões de visibilidade de
acesso às classes, aos atributos e aos métodos. Por intermédio dos modificadores de acesso, é possível ocultar determinadas partes do
código, dividindo o programa em partes menores e independentes e esta ação, de ocultar e/ou dividir, é conhecida como encapsulamento
Acerca do conceito de encapsulamento e dos modificadores de acesso da linguagem de programação Java, analise as afirmativas a
seguir:
I- Uma declaração com o modificador "public" permite o acesso de qualquer lugar do projeto Java e por qualquer entidade que possa
visualizar a classe a que ela pertença. 
II- Os membros de uma classe declarados com o modificador "protected" não podem ser acessados ou utilizados por nenhuma outra
classe. 
III- Métodos declarados como "default" só podem ser acessados a partir dos métodos da própria classe. 
IV- O Java define quatro modificadores de visibilidade: "private", "public", "protected" e "default". 
Agora, assinale a alternativa CORRETA:
A As afirmativas I e IV estão corretas.
B As afirmativas II, III e IV estão corretas.
C Somente a afirmativa I está correta.
D As afirmativas II e III estão corretas.
Dois dos relacionamentos mais utilizados na programação orientada a objetos são os relacionamentos de herança e associação.
Embora tenham algumas características comuns, estes relacionamentos devem ser utilizados na solução de problemas diferentes. Com
relação aos relacionamentos de associação e herança, classifique V para as sentenças verdadeiras e F para as falsas:
( ) A herança não permite a reutilização de métodos de superclasses, devido ao polimorfismo.
( ) Um relacionamento de associação é equivalente a um relacionamento de posse, pois a associação é simplesmente a colocação de um
atributo de determinado tipo em uma classe.
( ) Tanto a associação quanto a herança devem ser implementados na linguagem de programação Java através de palavras reservadas.
( ) No relacionamento de herança, a subclasse deve responder positivamente à pergunta (é um tipo de), feita para a superclasse.
Assinale a alternativa que apresenta a sequência CORRETA:
A V - V - F - F.
B F - V - F - V.
C F - V - F - F.
D V - V - V - F.
A estrutura de uma classe na linguagem de programação Java comporta um nome, um conjunto de atributos, também conhecido
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:
( ) Se o método calcularMedia(), chamado na linha 9, retorna um valor, esse valor é com certeza do tipo numérico.
( ) Todas as classes Java de uma aplicação devem possuir um método chamado de main.
( ) Substituindo a linha 6 pela instrução "Aluno a = null;" ocasionaremos erro de compilação no código.
( ) A linha 5 marca o que é conhecido como o ponto de entrada da aplicação.
Assinale a alternativa que apresenta a sequência CORRETA:
A V - V - F - V.
B V - F - F - V.
C V - F - V - F.
8
9
10
D F - F - V - V.

Outros materiais