Buscar

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 6 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 6 páginas

Prévia do material em texto

Peso1,50
1Dois 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)  F - V - F - V. 
 
B)  V - V - V - F. 
 
C)  F - V - F - F. 
 
D)  V - V - F - F.
2Define-se um objeto como a instância de uma classe, um objeto pode ser considerado como a "materialização" de uma classe. A linguagem de programação Java utiliza uma categoria especial de métodos para essa função, os chamados construtores que são invocados através do operador "new". Sobre a utilização de métodos construtores na linguagem de programação Java, classifique V para as sentenças verdadeiras e F para as falsas:
(    ) Se não forem definidos parâmetros de inicialização, a linguagem de programação Java utiliza um construtor padrão sem parâmetros.
(    ) Se uma classe contiver pelo menos um construtor com parâmetros, a instanciação de objetos com o construtor implícito, não declarado na classe, sem parâmetros (vazio) deixa de existir.
(    ) Uma classe pode conter quantos construtores forem necessários, considerando a combinação de seus atributos, inclusive o construtor sem parâmetros.
(    ) Uma classe pode conter apenas uma quantidade de construtores igual à quantidade de seus atributos.
Assinale a alternativa que apresenta a sequência CORRETA:
A)  V - F - F - V. 
 
B)  V - V - V - V. 
 
C)  V - V - V - F. 
 
D)  F - F - F - F.
3A 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, assinale a alternativa CORRETA:
 
 
A)  Com a utilização do recurso de herança é possível compartilhar métodos entre uma classe pai e uma classe filha, porém esse compartilhamento não é possível no tocante aos atributos. 
 
B)  A herança de métodos é possível, porém os métodos do tipo "get" e "set" devem ser reescritos através do polimorfismo. 
 
C)  Com a utilização do recurso de herança é possível compartilhar atributos entre uma classe pai e uma classe filha, porém esse compartilhamento não é possível no tocante aos métodos. 
 
D)  A palavra extends define a herança na linguagem de programação Java.
4Por 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:
(    ) Em uma superclasse, para acessar métodos da subclasse deve ser usada a instrução super.
(    ) A implementação de herança múltipla em Java não é possível.
(    ) Para definirmos um relacionamento de herança entre classes utilizamos a palavra reservada "derives".
(    ) 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)  V - F - F - V. 
 
B)  V - V - V - F. 
 
C)  F - F - V - V. 
 
D)  F - V - F - 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, 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;
}
Assinale a alternativa CORRETA:
A)  As sentenças III e IV estão corretas. 
 
B)  As sentenças II e III estão corretas. 
 
C)  As sentenças I e II estão corretas. 
 
D)  As sentenças II e IV estão corretas.
6Diz-se que no paradigma da orientação a objetos, os objetos podem criar relações entre si, e duas maneiras de se estabelecer uma relação entre objetos são através da associação e da herança que devem ser utilizados na solução de problemas diferentes. Sobre esses relacionamentos, analise as sentenças a seguir:
I- Quando um relacionamento de associação é estabelecido entre duas ou mais classes, significa que os objetos dessas classes estão relacionados, de alguma maneira, no mundo real.
II- Nos relacionamentos de associação, o conceito de superclasse é utilizado de maneira diferente do que nos relacionamentos de herança.
III- Os relacionamentos do tipo "associação" são implementados na linguagem de programação Java através das palavras reservadas "associate to".
IV- Um relacionamento que responde de maneira positiva à pergunta "é um tipo de" representa uma herança.
Assinale a alternativa CORRETA:
A)  As sentenças I e IV estão corretas. 
 
B)  As sentenças II e III estão corretas. 
 
C)  As sentenças II e IV estão corretas. 
 
D)  As sentenças I e III estão corretas.
7Java é 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)  As sentenças I e II estão corretas. 
 
B)  As sentenças II e III estão corretas. 
 
C)  Somente a sentença II está correta. 
 
D)  Somente a sentença I está correta.
8Na linguagem de programação Java, existem os modificadores de acesso que fornecem visibilidade ou invisibilidade para classes, métodos ou atributos. Através destes modificadores de acesso, pode-se tornar um atributo acessível para outra classe, por exemplo, ou ainda torná-lo visível apenas dentro da própria classe. Analiseo código-fonte, escrito em linguagem de programação Java, a seguir e classifique V para as sentenças verdadeiras e F para as falsas:
(    ) A classe "Carro" é visível em todas as demais classes da aplicação.
(    ) Os atributos "codigo" e "modelo" são visíveis por todas as classes que delegarem a classe "Carro".
(    ) O atributo "valor" é acessível apenas na subclasse do relacionamento de herança, se houver.
(    ) O atributo "qtdePortas" é visível por todas as classes que delegarem a classe "Carro".
Assinale a alternativa que apresenta a sequência CORRETA:
A)  V - F - V - V. 
 
B)  F - V - F - F. 
 
C)  V - V - V - F. 
 
D)  V - F - F - V.
9O 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 I e II estão corretas. 
 
B)  As sentenças II e IV estão corretas. 
 
C)  As sentenças III e IV estão corretas. 
 
D)  As sentenças I e III estão corretas.
10O 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 III e IV estão corretas. 
 
B)  As sentenças I e II estão corretas. 
 
C)  As sentenças II e IV estão corretas. 
 
D)  As sentenças II e III estão corretas.

Continue navegando