Buscar

Avaliação II - Individual - 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 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

1A herança, juntamente ao encapsulamento, o polimorfismo e a abstração, representa um dos pilares da programação orientada a objetos e pode, quando bem modelada e utilizada, diminuir o esforço na manutenção do código-fonte. Considerando o relacionamento de herança entre duas ou mais classes, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A herança possibilita o compartilhamento de atributos entre uma superclasse subclasse, limitando esse compartilhamento para os atributos indicados com o modificador "private". ( ) A palavra-chave extends define que uma classe está estendendo outra, que em outras palavras significa o uso de herança na linguagem de programação Java. ( ) A herança possibilita o compartilhamento de métodos entre uma superclasse subclasse, limitando esse compartilhamento para alguns tipos especiais de métodos. ( ) A herança de métodos é possível, porém os métodos construtores podem ser reescritos através do polimorfismo. Assinale a alternativa que apresenta a sequência CORRETA:
A
F - V - F - F.
B
F - F - V - V.
C
V - F - F - V.
D
V - V - V - F.
2O 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 não apresenta nenhum problema de sintaxe. II- O método competirPor(int pais) não está gerando nenhum erro de sintaxe e está usando corretamente a palavra-chave void. III- O método competirPor(int pais) gera erros de sintaxe, logo 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 II e IV estão corretas.
B
As sentenças II e III estão corretas.
C
As sentenças III e IV estão corretas.
D
As sentenças I e II estão corretas.
Atenção: Esta questão foi cancelada, porém a pontuação foi considerada.
3Na linguagem de programação Java, uma boa prática de desenvolvimento de software é programar orientado a objetos, embora a linguagem permita a programação procedural. No paradigma da orientação a objetos, encapsulamento pode ser descrito como ocultar atributos, métodos ou classes. Isto é realizado através de alguns modificadores de visibilidade, os quais são implementados. Com relação a estes modificadores de visibilidade, assinale a alternativa CORRETA:
A
O modificador private fornece acesso a todas as classes da aplicação.
B
O modificador default fornece visibilidade dentro da própria classe.
C
O modificador public para uma classe fornece visibilidade desta classe em todas as demais classes da aplicação.
D
O motificador protected fornece visibilidade para todas as classes dentro do mesmo pacote.
4Java é uma linguagem de programação interpretada orientada a objetos desenvolvida na década de 90 por uma equipe de programadores. Observe a figura anexa que ilustra uma situação típica em que podemos aplicar o conceito de herança de classes em Java. Considerando os conceitos de programação orientada a objetos, analise as sentenças a seguir: I- A classe FormaGeometrica, indicada pela letra A, é considerada a subclasse das classes contidas na área indicada pela letra B. II- Quadrado é uma classe filha da classe FormaGeometrica. III- A classe Triangulo tem como superclasse a classe FormaGeometrica. Agora, assinale a alternativa CORRETA:
A
Somente a sentença I está correta.
B
As sentenças I e III estão corretas.
C
As sentenças II e III estão corretas.
D
As sentenças I e II estão corretas.
5A sobrecarga de métodos, considerada um tipo de polimorfismo, é um mecanismo que permite que dois ou mais métodos compartilhem o mesmo nome, contanto que tenham diferentes conjuntos de parâmetros. Dessa forma, com o código-fonte apresentado, referente à classe Bicicleta, e a correta sintaxe aplicada ao polimorfismo de sobrecarga para os dois métodos construtores da referida classe, classifique V para as sentenças verdadeiras e F para as falsas: public class Bicicleta{ private char tamanhoQuadro; private int numeroMarchas; private char tamanhoRoda; public void movimentar(){ System.out.println("O objeto bike está em movimento!!"); } } ( ) public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = tamanhoQuadro; this.numeroMarchas = numeroMarchas; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(char tQuadro, int nMarchas){ this.tamanhoQuadro = tQuadro; this.numeroMarchas = nMarchas; } ( ) public Bicicleta(int numeroMarchas, char tamanhoRoda, char tamanhoQuadro){ this.numeroMarchas = numeroMarchas; this.tamanhoQuadro = tamanhoQuadro; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(char roda){ this.tamanhoRoda = roda; } ( ) public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ this.tamanhoQuadro = tamanhoQuadro; this.tamanhoRoda = tamanhoRoda; } public Bicicleta(char tamanhoQuadro, int numeroMarchas){ this.tamanhoQuadro = tamanhoQuadro; this.numeroMarchas = numeroMarchas; this.tamanhoRoda = tamanhoRoda; } ( ) public Bicicleta(){ this.numeroMarchas = numeroMarchas; } public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){ } Assinale a alternativa que apresenta a sequência CORRETA:
A
V - F - F - V.
B
F - V - V - F.
C
F - V - F - V.
D
V - V - F - F.
6
As classes abstratas são as que não permitem realizar qualquer tipo de instância. São classes feitas especialmente para serem modelos para suas classes derivadas.  As classes derivadas, via de regra, deverão sobrescrever os métodos para realizar a implementação dos mesmos. As classes derivadas das classes abstratas são conhecidas como classes concretas. As classes abstratas têm ainda uma importante função, que é permitir a utilização de métodos abstratos. Os métodos abstratos são uma das formas de se implementar o polimorfismo. Sobre os métodos abstratos, analise as sentenças a seguir:
I – Um método abstrato não tem corpo, somente sua assinatura.
II – Métodos abstratos somente podem ser definidos em classes abstratas.
III – Uma classe abstrata pode ter quantos métodos concretos (não abstratos) e abstratos forem necessários.
IV – Os objetos são derivados de método que estão sendo sobrescrito ou sobreposto.
V – Métodos derivados somente podem ser definidos em classes principais.
Assinale a alternativa CORRETA:
A
As sentenças I, II e III estão corretas.
B
As sentenças II e V estão corretas.
C
As sentenças I e IV estão corretas.
D
As sentenças I, III e IV estão corretas.
7O 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, classifique V para as sentenças verdadeiras e F para as falsas: (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)} ( ) Não existe o polimorfismo implementado entre as classes do exemplo, uma vez que a classe Veiculo não é uma classe abstrata. ( ) Ao executarmos a classePrincipal, 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). ( ) Existe o polimorfismo implementado entre as classes do exemplo, mesmo a classe Veiculo sendo uma classe concreta. ( ) 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!!). Assinale a alternativa que apresenta a sequência CORRETA:
A
F - V - V - F.
B
V - V - F - F.
C
V - F - F - V.
D
F - F - V - V.
8
Quando uma classe herda de outra, ela herda implementação, atributos e comportamento. Isso significa que todos os métodos e atributos disponíveis na interface externa da classe mãe estarão também na interface externa da filha (SINTES, 2002). Uma classe construída através de herança pode ter tipos importantes de métodos e atributos.
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.
Sobre os tipos de métodos e atributos, assinale a alternativa INCORRETA:
A
Recursivo.
B
Novo.
C
Sobreposto.
D
Replicado.
9
Na programação orientada a objetos, há um mecanismo que permite definir modificadores de acesso. Um atributo de uma classe pode ser definido com o modificador de acesso privado.
O que isso significa?
A
O atributo é acessível somente aos métodos da classe.
B
O acesso à classe é privado.
C
O atributo é acessível a um programa que tenha uma referência a um objeto da classe.
D
A classe é abstrata.
10
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. 
(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) }
Sobre os 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: 
(    ) 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 retirada, 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 - F - V.
C
F - F - V - V.
D
F - V - V - F.

Continue navegando