Você está na página 1de 7

Prova #1​ - Projeto de Software/Programação 3

Data: ​02/08/2017

Número de matrícula:_________________________________
Nome:__________________________________________________________________
Professor: ​Baldoino Fonseca

Q1)​ Sobre Programação Orientada a Objetos, analise:

I. A encapsulação garante que apenas as interfaces necessárias para interação com o


objeto estejam visíveis, e atributos internos não sejam acessíveis.
II. O polimorfismo garante que objetos possam herdar métodos e atributos de uma
superclasse para a geração de uma nova classe.
III. A herança possibilita que distintas operações na mesma classe tenham o mesmo
nome, desde que alterada a assinatura.

Está correto o que se afirma em:

a) III​, apenas.
b) II​, apenas.
c) I​, apenas.
d) I​ e ​III​, apenas.
e) I​, ​II​ e ​III​.

Q2) ​Sobre herança na orientação a objetos, é correto afirmar:

a) O conjunto de objetos representado por uma subclasse é, em geral, maior que o


conjunto de objetos representado por sua superclasse.
b) Cada objeto de subclasse é um objeto de sua subclasse.
c) Um problema com herança é que uma subclasse pode herdar métodos que ela não
necessita ou que não deveria ter.
d) Todo relacionamento de classe é um relacionamento de herança.
e) Os objetos de superclasse podem ser tratados como objetos de suas subclasses.

Q3) ​Em relação à orientação a objetos, considere:

Um dos mecanismos fundamentais na programação orientada a objetos é o conceito de


redefinição, que ocorre quando um método, cuja assinatura já tenha sido especificada,
recebe uma nova definição em uma classe derivada.
A linguagem de programação orientada a objetos deve suportar o conceito de ligação tardia
(late binding), visto que a definição do método que é candidato a ser efetivamente invocado
só ocorre durante a execução do programa.

O mecanismo de redefinição, juntamente com o conceito de ligação tardia, é a chave para a


utilização adequada de

a) polimorfismo.
b) objeto de classes derivadas.
c) restrições de acesso.
d) polimorfismo e herança.
e) dois métodos de uma mesma classe.

Q4)​ ​Sejam as seguintes classes Java, que ocupam arquivos distintos:


a) 12,0
b) 20,0
c) 23,0
d) 25,0
e) 46,0

Q5) ​Polimorfismo significa que

a) um método é sobrescrito.
b) um método é sobrecarregado.
c) um atributo é ocultado.
d) uma classe pode ser definida usando-se a definição de duas ou mais classes.
e) um objeto pode ter duas ou mais definições.

Q6) ​Linguagens orientadas a objeto possuem modificadores de acesso que são


palavras-chaves que costumam limitar ou liberar o acesso a variáveis e/ou métodos, de
forma a implementar o conceito de encapsulamento. Existem vários modificadores de
acesso em Java que controlam este acesso, tais como os modificadores public, private e
protected. Com base nestes conceitos, qual será o resultado obtido se o fragmento de
código abaixo for incluído em uma classe e compilado em linguagem Java?

a) Um erro de compilação na ​linha 10​, pois atributos com modificadores private só


podem ser acessados na classe que os definem.
b) Um erro de compilação na ​linha 8​, pois atributos com modificadores public não
podem ser redefinidos nas classes filhas.
c) Um erro de compilação na ​linha 7​, pois classes que contêm atributos com
modificadores de acesso private são finais, isto é, não podem ser extendidas.
d) Uma exceção na ​linha 11​, pois apesar de reconhecer o atributo b em tempo de
compilação, o fato dele ter modificador de acesso private impede que a classe filha
obtenha seu valor em tempo de execução.
e) A compilação bem sucedida do código.

Q7) ​Analise o trecho de código a seguir em Java e assinale a alternativa correta:

a) Ocorrerá um erro de compilação em ​Cachorro cachorro2 = new Basset();


b) A execução de ​cachorro2.tipo();​ mostrará o valor “100” na saída padrão.
c) A execução de ​cachorro2.tipo();​ mostrará o valor “10” na saída padrão.
d) Ocorrerá um erro de execução em​ ​cachorro1.tipo();
e) Ocorrerá um erro de execução em​ ​cachorro2.tipo();
Q8) ​Considere as seguintes declarações, em um aplicativo Java:

Quanto à sequência de comandos

A y = new B(); //Linha 1


y.metodo(5); //Linha 2

Pode-se afirmar que:

a) produzirá um erro de compilação na Linha 1;


b) produzirá um erro de compilação na Linha 2;
c) ao ser executada, escreverá na saída padrão a mensagem x = 4;
d) ao ser executada, escreverá na saída padrão a mensagem x = 5;
e) ao ser executada, escreverá na saída padrão a mensagem x = 6.

Q9) ​Na linguagem JAVA temos quatro modificadores de acesso que modificam a forma
como podem ser acessadas as classes, métodos e/ou variáveis. Para tanto, preencha a
tabela abaixo com SIM ou NÃO, linha a linha:
Assinale a alternativa que completa correta e respectivamente as lacunas.

a) NÃO - NÃO - NÃO - NÃO


NÃO - NÃO - NÃO - SIM
NÃO - NÃO - SIM - SIM
NÃO - SIM - SIM - SIM

b) SIM - SIM - SIM - SIM


SIM - SIM - NÃO - NÃO
NÃO - NÃO - SIM - SIM
SIM - SIM - SIM - NÃO

c) NÃO - NÃO - NÃO - NÃO


NÃO - NÃO - SIM - SIM
SIM - SIM - NÃO - NÃO
NÃO - NÃO - SIM - SIM

d) SIM - SIM - SIM - SIM


SIM - SIM - SIM - NÃO
SIM - SIM - NÃO - NÃO
SIM - NÃO - NÃO - NÃO

e) SIM - SIM - SIM - NÃO


SIM - SIM - NÃO - NÃO
SIM - NÃO - NÃO - NÃO
SIM - SIM - SIM - SIM
Q10) ​Assinale a alternativa correspondente ao resultado da execução do método main do
programa Java apresentado abaixo:

a) Serão impressos o valor 40 e o valor 10


b) Serão impressos o valor 40 e o valor 30
c) Serão impressos o valor 10 e o valor 10
d) Será impresso o valor 40 e posteriormente será lançada a exceção
ClassCastException
e) Será impresso o valor 10 e posteriormente será lançada a exceção
ClassCastException