Você está na página 1de 8

A+ A-A

Acadêmico: Wilson Jose Santana (2987054)


Disciplina: Programação Orientada a Objetos (ADS17)
Avaliação: Avaliação II - Individual ( Cod.:670861) ( peso.:1,50)
Prova Objetiva: 28490781
1. O 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 "Competidor" e
classifique V para as sentenças verdadeiras e F para as falsas:

package fontes;

public class Competidor{


private int pais;
private String modalidade;
 private boolean medalistaOlimpico;

 public void competir(String modalidade){


 System.out.println("É especialista em " + modalidade);
   }
    
  public abstract void competirPor(int pais){
      System.out.println("O atleta compete por " + pais);        
  }
    
}

(   v ) Existe um erro de sintaxe na linha (2) que é resolvido adicionando-se a palavra-chave
"abstract", antes da palavra chave "Class".
(   f ) O método "competir(String modalidade)" está gerando um erro de sintaxe, e adicionando a
palavra chave "abstract", antes da palavra-chave "void", resolverá o erro gerado.
(  v ) O método "competirPor(int pais)" está gerando um erro de sintaxe, resolvido eliminando-se
a sua implementação, deixando-se apenas a sua assinatura.
(  v  ) O método "competirPor(int pais)" está gerando um erro de sintaxe, e adicionando a
palavra-chave abstract, antes da palavra- chave "Class", além de eliminar a sua implementação,
deixando-se apenas a sua assinatura, resolverá o erro gerado.

Assinale a alternativa que apresenta a sequência CORRETA:

a) V - F - F -V.
b) V - V - F -V.
c) V - V - V -F.
d) F - F - V -V.
 

 
2. Por intermédio da herança, um dos pilares da programação orientada a objetos, é possível
reaproveitarmos características e comportamentos já implementados em outras classes sem a
necessidade de realizar a cópia de código-fonte. Com relação a esse conceito, classifique V para
as sentenças verdadeiras e F para as falsas:
(  V  ) Em uma superclasse, para acessar métodos da subclasse deve ser usada a instrução super.
(   V ) A implementação de herança múltipla em Java não é possível.
(   F ) Para definirmos um relacionamento de herança entre classes utilizamos a palavra
reservada "derives".
(   F) Uma subclasse herda os métodos da superclasse, entretanto, pode ter seus próprios
métodos.

Agora, assinale a alternativa que apresenta a sequência CORRETA:


a) F - V - F - V.
b) F - F - V - V.
c) V - F - F - V.
d) V - V - V - F.
3. A 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 I, II e IV estão corretas.
b) As sentenças II e III estão corretas.
c) Somente a sentença IV está correta.
d) Somente a sentença I está correta.
4. Os modificadores de acesso possuem o objetivo de tornar classes, métodos ou atributos visíveis
ou invisíveis, facilitando o seu encapsulamento. Com estes modificadores, podemos, por
exemplo, liberar o acesso de um atributo de uma classe X por uma classe Y. Analise o código-
fonte a seguir e classifique V para as sentenças verdadeiras e F para as falsas:

(  f  ) O método "getCodigo()"da classe "Carro" é visível em todas as classes do pacote.


( f   ) O método "getCodigo()"da classe "Carro" é visível somente na subclasse de um
relacionamento de herança.
(v    ) O método "getValor()"da classe "Carro" é visível somente na subclasse de um
relacionamento de herança.
(   v ) O método "getModelo()"da classe "Carro" é visível somente dentro da própria classe
"Carro".

Assinale a alternativa que apresenta a sequência CORRETA:


a) V - V - V - F.
b) V - V - F - F.
c) F - F - V - V.
d) F - V - F - F.
5. A 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, analise as sentenças a seguir sobre a correta sintaxe aplicada ao polimorfismo de
sobrecarga para os dois métodos construtores da referida classe:

public class Bicicleta{


private char tamanhoQuadro;
private int numeroMarchas;
private char tamanhoRoda;

public void movimentar(){


System.out.println("O objeto bike está em movimento!!");
}
}

I-
public Bicicleta(char tamanhoQuadro, int numeroMarchas){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
}

public Bicicleta(){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
}

II-
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
this.tamanhoRoda = tamanhoRoda;
}
public Bicicleta(){
}

III-
public Bicicleta(char tamanhoQuadro, int numeroMarchas, char tamanhoRoda){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
this.tamanhoRoda = tamanhoRoda;
}

public Bicicleta(int numeroMarchas, char tamanhoRoda){


this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
this.tamanhoRoda = tamanhoRoda;
}

IV-
public Bicicleta(int numeroMarchas){
this.numeroMarchas = numeroMarchas;
}
public Bicicleta(char tamanhoQuadro, int numeroMarchas){
this.tamanhoQuadro = tamanhoQuadro;
this.numeroMarchas = numeroMarchas;
}

DUVIDA GRANDE

Assinale a alternativa CORRETA:


a) As sentenças III e IV estão corretas.
b) As sentenças II e IV estão corretas.
c) As sentenças I e II estão corretas.
d) As sentenças II e III estão corretas.
6. Java é 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 implementa a interface FormaGeometrica.  

Agora, assinale a alternativa CORRETA:


a) Somente a sentença II está correta.
b) As sentenças II e III estão corretas.
c) As sentenças I e II estão corretas.
d) Somente a sentença I está correta.
7. Uma das principais características da orientação a objetos é a possibilidade de ocultar partes do
código de um objeto, chamada de encapsulamento. Com o encapsulamento, cada parte do
código-fonte é menor e independente de outras partes, isto é, cada método é específico,
realizando uma única operação, tornando o código-fonte mais reutilizável e legível. Com relação
ao encapsulamento, assinale a alternativa CORRETA:
a) Ao ocultar detalhes do código-fonte, aumenta-se o acoplamento.
b) O encapsulamento evita que alguma entidade externa altere os valores dos atributos de um
objeto indevidamente.
c) O encapsulamento permite a instância de uma classe em memória.
d) A interface exposta de uma classe, se alterada para privada, encapsulada, não requer
cuidado para os métodos chamadores.
8. A utilização de classes abstratas permite uma maior confiabilidade na definição da hierarquia de
herança, pois possui características especiais que impedem sua utilização de forma errônea por
outros desenvolvedores. Considerando que as palavras sublinhadas na figura a seguir
representam erros de compilação, classifique V para as sentenças e F para as falsas:

(    ) Bastaria colocar a palavra reservada abstract na frente da palavra class para resolver todos
os problemas da classe.
(    ) Uma classe abstrata pode possuir métodos concretos.
(    ) Somente classes abstratas podem possuir métodos abstratos.
(    ) O primeiro método imprime() deve receber um parâmetro de qualquer tipo para que seu
erro de compilação seja corrigido.

Agora, assinale a alternativa que apresenta a sequência CORRETA:

a) V - V - F - F.
b) F - V - V - F.
c) V - V - F - V.
d) V - F - F - V.
9. O polimorfismo é um mecanismo poderoso da programação orientada a objetos, pois permite
que se adicionem novas funcionalidades a um software sem alterar partes desse mesmo software
que já estejam funcionando. Com relação ao polimorfismo, classifique V para as sentenças
verdadeiras e F para as falsas:

(    ) O polimorfismo de sobreposição consiste na colocação de novos parâmetros em outro


método que possua o mesmo nome de um método já existente.
(    ) O polimorfismo paramétrico é altamente dependente da linguagem de programação, por
este motivo nem todas as linguagens de programação orientadas a objetos o implementam.
(    ) A sobrecarga permite redefinir completamente um método, substituindo-o nas classes que
fizerem uso deste tipo de polimorfismo.
(    ) As interfaces são uma maneira eficiente de implementar o polimorfismo.

Agora, assinale a alternativa que apresenta a sequência CORRETA:


a) V - V - V - F.
b) F - V - F - V.
c) V - F - F - V.
d) V - V - F - V.
10. 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, assinale a alternativa CORRETA:

public class Veiculo {


public void parar(){}
}

public class Motocicleta extends Veiculo{


public void parar(){
        System.out.println("Parando a motocicleta!!");
    }    
}

//Veiculo utilitario esporte (SUV: Sport Utility Vehicle)


public class Suv extends Veiculo{
    public void parar(){
        System.out.println("Parando o veículo utilitário!!");
    }    
}

public class Principal {


    public static void main(String[] args){
        Veiculo veiculo1 = new Motocicleta();
        Veiculo veiculo2 = new Suv();        
        
        veiculo1.parar();
        veiculo2.parar();        
    }    
}
a) 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!!).
b) Não existe polimorfismo implementado entre as classes do código-fonte apresentado.
c) 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!!).
d) 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).

DUVIDA GRANDE

Atenção: Confira as respostas! Depois de concluir a avaliação não será


possível fazê-la novamente.
Gravar respostas

19/06/2020 UNIASSELVI - Centro


Universitário Leonardo Da Vinci - Portal do
Aluno - Portal do Aluno - Grupo
UNIASSELVI
https://portaldoalunoead.uniasselvi.com.br/
ava/notas/request_gabarito_n2.php?
action1=QURTMDE2OA==&action2=QU
RTMTY=&action3=NjM3…
6/6
c) As sentenças I, II e III estão
corretas.
d) As sentenças I e IV estão
corretas.

Você também pode gostar