Examen III
Programacion Orientada a Objetos.
Grupo 312.
Entrega:
Se debe entregar el dia 10 de Diciembre, antes de las 09:00 am.
Enviar en un archivo compreso (formato ZIP o JAR) el codigo fuente de los problemas
propuestos. La cuenta de correo a la que se enviara el examen es prac3122001@hotmail.com
En el encabezado del correo indicar el titulo de Examen 3, y en el contenido, poner
los nombres de cada integrante del equipo
El examen se puede resolver de 1 a 4 personas.
Examen que se copie de otros equipos, es calificado con CERO.
Preguntas:
0. Antes de resolver el examen, entender el concepto de :
+) Clase abstracta
+) Interfase
+) AutoReferencia a una clase o referencia "this"
+) El modelo de compenentes y eventos de AWT
+) Herencia multiple de interfases
+) Delegacion
+) Combinacion de delegacion con interfases
+) Applet
1. Construir un programa que ayude a dibujar 2 figuras geometricas.
+) Definir una clase abstracta denominada FiguraGeometrica. Tiene un metodo abstracto denominado
dibujar. Tiene como parametro una referencia a un objeto de tipo java.awt.Graphics
+) Definir una clase denominada Circulo, que extiende a una FiguraGeometrica. Las propiedades y
metodos del Circulo son:
+) Coordenadas x e y del centro del Circulo y el radio del Circulo.
+) El metodo dibujar debe utilizar la referencia al objeto java.awt.Graphics, utilizando
el metodo drawOval
+) Definir una clase denominada Cuadrado, que extiende a una FiguraGeometrica. Las propiedades y
metodos del Circulo son:
+) Coordenadas x e y de la esquina superior izquierda, y la longitud del lado del Cuadrado.
+) El metodo dibujar debe utilizar la referencia al objeto java.awt.Graphics, utilizando
el metodo drawRectangle.
+) Una clase denominada PintorApplet, que extiende a la clase java.applet.Applet. Proveer
dos botones, de tipo java.awt.Button. Un boton debe decir Circulo y el otro Cuadrado.
Cuando el usuario seleccione alguno de los dos, puede apuntar con el raton,en cualquier area del
Applet, el lugar donde desea dibujar la figura y se debe crear un Circulo de radio 20,o un
Cuadrado de longitud 25, con coordenadas iguales a la posicion del apuntador del raton.
+) Proporcionar el archivo HTML para ejecutar al Applet.
2. Construir :
+) Una interfase denominada IContador. Tiene un metodo que se denomina incrementar y otro
que se denomina decrementar. No reciben parametros y no retornan resultados.
+) Una clase denominada Contador, la cual tiene un atributo privado de tipo entero, denominado
contador (debe encapsularse y dar los metodos get/set respectivos). Dicha clase debe
implementar a la interfase IContador. El metodo incrementar debe sumar una unidad a la propiedad
privada contador. El metodo decrementar debe restar una unidad a a la propiedad privada
contador.
+) Una clase denominada Procesador. Tiene un metodo estatico denominado procesar, recibe
dos parametros, el primero una referencia de tipo IContador y el segundo un valor entero
que indica el tipo de operacion a realizar, si es valor 1 debe invocar el metodo incrementar
del objeto tipo IContador, si es 2, debe invocar al metodo decrementar del objeto tipo IContador.
+) Una clase Denominada ContadorGrafico, debe extender a la clase java.awt.Panel e
implementar a la interfase IContador. Debe tener las siguientes propiedades privadas:
+) Una etiqueta denominada lValor, de tipo java.awt.Label
+) Un boton denominado bInc, de tipo java.awt.Button
+) Un boton denominado bDec, de tipo java.awt.Button
+) Una referencia a un objeto de tipo Contador
El constructor de la clase ContadorGrafico, debe iniciar cada una de las propiedades anteriores.
Se deben agregar al Panel los botones y la etiqueta, usando un "Layout" nulo. Se deben
posicionar los componentes graficos, utilizando el metodo setBound
Cuando el boton bInc sea presionado, se debe invocar al metodo estatico procesar de la clase
Procesador, teniendo como parametro la referencia a la clase ContadorGrafico (checar el
concepto de la palabra reservada this) y el valor 1. Cuando el boton bDec sea presionado, se
debe invocar al metodo estatico procesar de la clase Procesador, teniendo como parametro la referencia a la clase ContadorGrafico y el valor 2.
Para capturar los eventos de los botones, se recomienda que la clase ContadorGrafico
implemente a la interfase java.awt.ActionListener, con el fin de que la clase ContadorGrafico
sea agregada como un escucha de los eventos generados por los botones.
Al concluir la invocacion del metodo procesar, pedir a la referencia de tipo Contador,
el valor de la propiedad contador (via el metodo get) y mostrar dicho valor dentro del
componente grafico lValor.
Para que la clase ContadorGrafico implemente los metodos incrementar y decrementar, usar
delegacion con la referencia al objeto de tipo Contador.
+) Una clase denominda ContadorApplet. En el metodo init debe agregar al componente ContadorGrafico.
+) Proporcionar el archivo HTML para ejecutar al Applet.
+) Hacer un diagrama de clases que muestre la relacion entre cada clase planteada, y
explicar como se esta realizando la herencia multiple.
               (
geocities.com/gusdelact)