Академический Документы
Профессиональный Документы
Культура Документы
9 Herencia y Polimorfismo
En esta prctica el proyecto estar organizado en clases relacionadas jerrquicamente y se complementar
con una interfaz para soportar el polimorfismo.
El modelo de clases se muestra en la figura 1:
Metodologa.
1. Declarar la clase Figura, con los siguientes requisitos:
a) Es pblica y abstracta.
b) Con un atributo denominado nombre de tipo String.
c) El constructor recibe un String para asignarlo al atributo nombre.
d) Con los siguientes mtodos:
Signatura
acceso
tipo
Otras
Descripcin del contenido {}
caractersticas
area()
pblico
double
abstracto
permetro()
pblico
double
abstracto
menorQue(Figura figura) pblico
boolean final
Regresa el resultado de la
comparacin menor que (<)
del rea de la figura actual y el
rea de la figura que se recibe
en el argumento.
toString()
pblico
String
Final y
Devuelve una cadena con el
sobrecargado
texto: "Figura: " + nombre + "
Area=" + area()
3. Declarar la subclase Rectngulo, que hereda de la clase Figura, con los siguientes elementos:
acceso
tipo
setPosicin(double x, double y)
Otras
caractersticas
pblico void Sobrecargado
dibujar(Graphics dw)
acceso
tipo
setPosicin(double x, double y)
Otras
caractersticas
pblico void Sobrecargado
dibujar(Graphics dw)
9. La siguiente clase que se construir es la clase PanelDibujo para que las figuras aparezcan dibujadas en
la pantalla. Esta clase es pblica y deriva de la clase Panel, que deriva de Container, que deriva de
Component, que deriva de Object.
Object: es la clase ms general de Java.
Component: comprende todos los objetos de Java que tienen representacin grfica tales como botones y
barras de desplazamiento.
Container: representa los objetos grficos del AWT (Abstract Windows Toolkit).
Panel: define los Container ms sencillos, capaces de contener otros elementos grficos y sobre la que se
puede dibujar.
AWT: Librera de clases de Java que permite crear interfaces grficas de usuario.
Sus elementos son los siguientes:
a) Atributo privado denominado v, para la lista de figuras dibujables. Este atributo ser un ArrayList.
La declaracin de un ArrayList tiene la siguiente sintaxis:
ArrayList <tipoDeElementos> variable ;
b) El constructor del panel, con el parmetro va de tipo ArrayList. El constructor invoca al constructor
de su clase base con super( new FlowLayout() ); luego, asigna el valor del argumento al atributo v.
c) Se sobrecarga el mtodo paint(). Este es un mtodo pblico que no devuelve datos, recibe como
parmetro la referencia a un objeto g de tipo Graphics.
Mediante un ciclo for each el mtodo dibuja cada figura guardada en el vector.
El ciclo for each, tiene la siguiente sintaxis:
for ( tipoDeElementosDelVector variable : vector) {
//sentencias que se repiten
// aqu se utiliza la variable que en cada iteracin
// hace referencia a cada elemento del vector
}
10. Agregar al proyecto la clase Ventana. Esta clase es pblica, implementa la interfaz WindowListener y
se deriva de Frame.
Contiene nicamente dos constructores:
a) El primero invoca al constructor de su clase Base, con super sin parmetros.
b) El segundo, recibe el ttulo de la ventana en parmetro de tipo String. El constructor invoca
inicialmente al constructor de la clase base, enviando el ttulo como argumento. Luego, establece
el tamao de la ventana de 500 x 500 pixeles, con el mtodo setSize(int weigth, int heigth).
Finalmente, se agrega el objeto actual (this) al conjunto de ventanas con
el mtodo
addWindowListener(this).