Buscar

Programação Orientada A Objetos - Avaliação II - Individual

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

1Por intermédio da herança e do encapsulamento, é possível implementarmos o polimorfismo, mecanismo que permite que duas ou mais classes derivadas de uma mesma superclasse possam criar e/ou invocar métodos com a mesma assinatura, mas com comportamentos diferentes. Com relação ao conceito de polimorfismo e sua implementação na linguagem Java, analise as afirmativas a seguir:
I- Polimorfismo de inclusão, polimorfismo paramétrico, sobreposição e sobrecarga são exemplos de tipos de polimorfismo.
II- O Java não permite a implementação do polimorfismo paramétrico.
III- A técnica de sobrecarga pode ser utilizada para distinguir, em uma determinada classe, dois métodos com o mesmo nome, o mesmo retorno e o mesmo conjunto de argumentos, mas com uma lógica diferente.
IV- Na sobrecarga de métodos, é necessário utilizar a anotação @Override.
Agora, assinale a alternativa CORRETA:
A)  As afirmativas II, III e IV estão corretas.
B)  As afirmativas I e IV estão corretas.
C)  As afirmativas II e IV estão corretas.
D)  Somente a afirmativa I está correta.
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 apresenta problemas de sintaxe.
II- O método competirPor(int pais) não está gerando erro de sintaxe e usa corretamente a palavra-chave void.
III- O método competirPor(int pais) gera erros de sintaxe, e 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 III e IV estão corretas.
C)  As sentenças I e III estão corretas.
D)  As sentenças I e II estão corretas.
3De acordo com o paradigma da programação orientada a objetos, o relacionamento de herança difere-se do relacionamento de associação especialmente pela definição dos tipos envolvidos. Considerando a figura a seguir, classifique V para as sentenças verdadeiras e F para falsas:
(    ) O relacionamento mais adequado entre Personagem e Gladiador é o de herança.
(    ) Um Personagem tem uma arma, o que caracterizaria um relacionamento de associação.
(    ) Se Personagem está associado a uma arma e Gladiador é subclasse de Soldado, necessariamente Gladiador tem uma arma.
(    ) O relacionamento mais adequado entre Gladiador e Soldado é o de associação.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A)  V - F - F - V.
B)  V - V - F - F.
C)  V - V - V - V.
D)  F - V - F - F.
4O 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 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).
(    ) 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)  V - F - F - V.
B)  F - V - V - F.
C)  V - V - F - F.
D)  F - F - V - V.
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 - V - F - F.
B)  V - F - F - V.
C)  F - V - F - V.
D)  F - V - V - F.
6Através do encapsulamento, é possível deixar o software mais manutenível, através da centralização de responsabilidades, ocultação de implementação e exposição de interfaces. Com relação ao encapsulamento e sua implementação na linguagem de programação Java, analise as sentenças a seguir:
I- Atributos também podem ser ocultados, no sentido de garantir um maior encapsulamento.
II- O modificador default permite o acesso padrão a todos dentro da mesma aplicação.
III- Quanto maior o acoplamento, maior a dependência entre os objetos e, consequentemente, mais difícil a manutenção do código fonte.
IV- Tanto a coesão quanto o encapsulamento são obtidos na linguagem de programação Java através do modificador de acesso protected.
Agora, assinale a alternativa CORRETA:
A)  As sentenças III e IV estão corretas.
B)  Somente a sentença IV está correta.
C)  Somente a sentença II está correta.
D)  As sentenças I e III estão corretas.
7O Polimorfismo de inclusão permite que se defina um novo comportamento para um objeto sem que se faça alterações nos que já estão funcionando, minimizando consideravelmente os custos e reduzindo o tempo para novas implementações. Considerando que a figura a seguir traz duas classes relacionadas a uma interface, classifiqueV para as sentenças verdadeiras e F para as falsas:
(    ) O método encript() da interface é implicitamente abstrato.
(    ) Na linguagem de programação Java, demonstraríamos que SHA implementa IAlgoritmoCriptografia através da palavra reservada extends.
(    ) Um método existente em outra classe cuja assinatura seja “public void criptografar(IAlgoritmoCriptografia iac)” pode receber como parâmetro tanto um objeto da classe SHA quanto um objeto da classe DES.
(    ) Podemos dizer que tanto SHA quanto DES implementam IAlgoritmoCriptografia.
Agora, assinale a alternativa que apresenta a sequência CORRETA:
A)  F - V - F - V.
B)  V - V - F - F.
C)  V - F - V - V.
D)  V - V - F - V.
8A herança é um dos pilares da programação orientada a objetos e pode, quando bem utilizada, diminuir o esforço na manutenção do código fonte. Com relação ao relacionamento de herança entre duas ou mais classes, analise as sentenças a seguir:
I- Através da herança, é possível reaproveitar atributos já definidos em uma classe mãe.
II- Uma classe filha pode herdar de quantas superclasses quiser na linguagem de programação Java.
III- Não é possível herdar a implementação de métodos, visto que todos devem ser reescritos através do polimorfismo.
IV- A palavra inherits define a herança na linguagem de programação Java.
Agora, assinale a alternativa CORRETA:
A)  As sentenças II e III estão corretas.
B)  Somente a sentença IV está correta.
C)  As sentenças I, II e IV estão corretas.
D)  Somente a sentença I está correta.
9Quanto maior o acoplamento entre duas classes, maior o grau de relacionamento entre estas, o que é contrário aos princípios do encapsulamento. Assinale a alternativa CORRETA que explique um malefício causado pelo alto acoplamento:
A)  Em uma situação na qual duas classes são fortemente acopladas, a comunicação entre estas torna-se mais difícil.
B)  Em um sistema em que ocorre alto acoplamento, a performance tende a ser baixa.
C)  O alto acoplamento impede que os objetos se comuniquem livremente através de mensagens, deixando o sistema pouco flexível.
D)  Quanto maior o acoplamento, maior a dependência entre os objetos e, consequentemente, mais difícil a manutenção do código fonte.
10Na 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 default fornece visibilidade dentro da própria classe.
B)  O modificador public para uma classe fornece visibilidade desta classe em todas as demais classes da aplicação.
C)  O modificador private fornece acesso a todas as classes da aplicação.
D)  O motificador protected fornece visibilidade para todas as classes dentro do mesmo pacote.

Continue navegando