2a Prova de Características das Linguagens de Programação – ano

Propaganda
2a Prova de Características das Linguagens de Programação – ano 2007 – 20 período
1a questão (1,5 pontos): i) Disserte sobre as vantagens e desvantagens de Java
relativamente às outras linguagens de computação; ii) Apresente as diferenças mais
marcantes entre Java e a linguagem de computação apresentada por você em seu primeiro
trabalho.
2a questão (3 pontos): Programe um servidor (echo server) em Java que simplesmente
reproduza um texto a ele enviado por um cliente. O seu servidor deve implementar
múltiplos threads, para evitar que um cliente faça um outro cliente esperar indefinidamente.
3a questão (2 pontos): Considere o código a seguir de um applet, denominado
UpdateApplet, que mantém um thread para automaticamente atualizar
o seu display em intervalos regulares.
public class UpdateApplet extends java.applet.Applet implements Runnable
{
private Thread updateThread;
int updateInterval = 1000;
public void run() {
while ( true ) {
try {
Thread.sleep( updateInterval );
} catch (InterruptedException e ) {
return;
}
repaint();
}
}
public void start() {
if ( updateThread == null ) {
updateThread = new Thread(this);
updateThread.start();
}
}
public void stop() {
if ( updateThread != null ) {
updateThread.stop();
updateThread = null;
}
}
}
Usando herança, codifique um applet, denominado Clock, que simplesmente mostre na
tela, em intervalos regulares de 1 segundo, o tempo corrente do sistema.
Sugestão: use a classe Java.util.Date.
Atenção: nas questões 4 e 5, cada opção errada assinalada descontará uma opção
corretamente assinalada!
4a questão (2,0 pontos): Assinale a(s) afirmação(ões) correta(s) :
a) Herança é quando uma classe herda de outra classe, apenas alguns métodos que lhe
interessa;
b) Polimorfismo é o recurso de determinadas linguagens orientadas a objeto que permitem
a um único objeto tomar a forma, em sua totalidade, de diferentes objetos, dependendo
do contexto;
c) Overload de um método é quando o método torna-se excessivamente carregado de
código, impactando o uso da cpu ou, até mesmo, podendo causar um overflow na pilha
do sistema;
d) Encapsulamento é quando desejamos evitar que a implementação de um método seja de
conhecimento geral, isto é, sejam visíveis a partir de outros objetos. Para implementar
esta característica as linguagens orientadas a objeto fornecem modificadores de acesso
que, quando aplicados a variáveis de instância e métodos, alteram o grau de visibilidade
destes;
e) Abstração é a característica das linguagens orientadas a objeto que nos permite não
considerar certas dificuldades de implementação, concentrando-nos apenas nos aspectos
para os quais a linguagem nos oferece os recursos necessários à implementação dos
objetos desejados;
f) Hierarquia é quando uma classe determina a uma subclasse quais as variáveis de
instância a que ela pode ter acesso e quais os métodos que ela pode executar.
g) Persistência é a característica de algumas linguagens orientadas a objeto que possuem
variáveis globais. Em função desta característica estas variáveis globais podem
“persistir”, isto é, permanecerem ativas, durante todo o tempo de execução do
programa.
5a questão (1,5 pontos): Considere o modelo para tratamento de eventos da AWT
denominado Delegation Model (1.1 AWT Event Model). Considerando as afirmações
abaixo, relativamente ao Delegation Model, assinale a(s) opção(opções) correta(s).
Afirmações sobre o AWT Delegation Model
1. Vários objetos receptores (listeners) de eventos podem receber (tratar) eventos
de todos os tipos gerados (emitidos) por diversos objetos geradores de eventos;
2. Eventos de um determinado tipo só podem ser tratados por manipuladores de
eventos que sejam todos instâncias de uma única classe;
3. É opcional registrar uma instância de uma classe manipuladora de eventos como
uma receptora de eventos para eventos gerados por um componente específico;
4. Tratadores de eventos (Event handlers) só podem ser instâncias de classes
específicas, associadas aos tipos de eventos gerados;
5. No comando “class” do tratador de eventos (event handler) deve-se
obrigatoriamente incluir um trecho de código, indicando que a classe tratadora
de eventos implementa a interface receptora (listener) correspondente ao tipo de
evento que se deseja tratar;
Boa Sorte!
Prof. Oscar Luiz Monteiro de Farias
Download