1a Prova de Características de Linguagens de Programação – 04

Propaganda
1a Prova de Características de Linguagens de Programação –
04/05/99
a
1 questão: Considere o trecho abaixo, de um applet escrito em Java.
Identifique:





os packages utilizados pelo applet;
as classes existentes no applet;
os objetos, associando-os às classes de que são instâncias;
os métodos, associando-os aos seus respectivos objetos;
os data-members ou variáveis de instância, associando-os aos seus
respectivos objetos;
as variáveis locais.

import java.applet.*;
import java.awt.*;
public class Broadway extends Applet implements Runnable {
Thread animrect;
int locx,locy;
int width, height;
static final byte UP = 0;
static final byte DOWN = 1;
static final byte LEFT = 2;
static final byte RIGHT = 3;
byte state;
// state the rect is in
static final int REFRESH_RATE = 100;
public void init() {
System.out.println(">> init <<");
setBackground(Color.black);
locx = 80;
locy = 100;
width = 110;
height = 90;
state = UP;
}
public void start() {
System.out.println(">> start <<");
animrect = new Thread(this);
if (animrect != null) {
animrect.start();
}
}
public void paint(Graphics g) {
System.out.println(">> paint <<");
g.setColor(Color.yellow);
// in ms
g.fillRect(0,0,90,90);
g.fillRect(250,0,40,190);
g.fillRect(80,110,100,20); // hidden rectangle
g.setColor(Color.blue);
g.fillRect(80,200,220,90);
g.fillRect(100,10,90,80);
g.setColor(Color.lightGray);
g.fillRect(locx,locy,width,height);
g.setColor(Color.red);
g.fillRect(200,0,45,45);
g.fillRect(0,100,70,200);
g.setColor(Color.magenta);
g.fillRect(200,55,60,135);
}
void updateRectangle() {
switch (state) {
case DOWN:
locy += 2;
if (locy >= 110) {
state = UP;
}
break;
case UP:
locy -= 2;
if (locy <= 90) {
state = RIGHT;
}
break;
case RIGHT:
locx += 2;
if (locx >= 90) {
state = LEFT;
}
break;
case LEFT:
locx -= 2;
if (locx <= 70) {
state = DOWN;
}
break;
}
}
public void run() {
while (true) {
repaint();
updateRectangle();
try {
Thread.sleep (REFRESH_RATE);
} catch (Exception exc) { };
}
}
public void stop() {
System.out.println(">> stop <<");
if (animrect != null) {
animrect.stop();
animrect = null;
}
}
}
a
a
2 questão: Dado o trecho do código do applet Broadway acima (1 questão),
i) explique minuciosamente o que faz este applet (sua funcionalidade); ii)
explique como os diversos comandos do applet implementam a funcionalidade
descrita por voce.
a
3 questão: Explique, exemplificando a partir do “sistema” formado pela casa
aonde você mora, os conceitos fundamentais da orientação a objetos, relativos
a:
abstração,
encapsulamento,
hierarquia,
herança,
polimorfismo,
modularidade, tipos, concorrência e persistência.
Observação: Todos os seus exemplos têm que estar associados ao contexto da
casa, isto é, seus objetos, pessoas, acontecimentos, etc...
a
4 questão: Desenvolva um programa em java que receba duas classes como imput
com a sua completa qualificação por extenso ( java.awt.Button e
java.awt.Graphics, por exemplo) e que verifique se uma das classes é subclasse
da outra.
a
5 questão: Faça um programa em java que crie pelo menos 4 (quatro ) objetos
que sejam instâncias de deferentes classes, cuidando para que elas tenham o
método toString() implementado. A seguir armazene os objetos em um container
do tipo Vector. A seguir recupere-os do container e imprima a representação
em String destes objetos.
Boa Sorte!
Prof. Oscar Luiz Monteiro de Farias
Download