apo2 - presentacion nivel 10

90
ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2) NIVEL 10 Mario José Villamizar Cano [email protected] Oficina ML-637 http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php Grupo de Tecnologías de Información y Comunicación (COMIT) Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes, Bogotá D.C., Colombia

Upload: mario-jose-villamizar-cano

Post on 21-Jun-2015

2.638 views

Category:

Education


0 download

DESCRIPTION

Esta es la presentación del Nivel 10 del curso "ISIS-1205 Algorítmia y Programación por Objetos 2" (APO2) de la Universidad de los Andes, Bogotá, Colombia.

TRANSCRIPT

Page 1: APO2 - Presentacion nivel 10

ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2)

NIVEL 10

Mario José Villamizar Cano

[email protected]

Oficina ML-637

http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php

Grupo de Tecnologías de Información y Comunicación (COMIT)

Departamento de Ingeniería de Sistemas y Computación

Universidad de los Andes, Bogotá D.C., Colombia

Page 2: APO2 - Presentacion nivel 10

[email protected]

http://twitter.com/mariocloud

http://linkedin.com/in/mariojosevillamizarcano

REDES SOCIALES

NIVEL 10

Page 3: APO2 - Presentacion nivel 10

Caso de estudio 1 – Editor de dibujos

Interfaces

Referencia de tipo interfaz

Clases que implementas interfaces

Interfaces para contenedores (Collection, List)

Iteradores para recorrer secuencias (Iterator)

Interfaces de niveles anteriores (ActionListener, ListSelectionListener,

Serializable)

NIVEL 10 – MECANISMOS DE REUTILIZACIÓN Y DESACOPLAMIENTO

NIVEL 10

Page 4: APO2 - Presentacion nivel 10

Caso de estudio 1 – Editor de dibujos

Herencia

Extensión de interfaces

Uso de herencia en niveles anteriores

Manejo de menús

Manejo de eventos del ratón

Dibujo básico en Java

NIVEL 10 – MECANISMOS DE REUTILIZACIÓN Y DESACOPLAMIENTO

NIVEL 10

Page 5: APO2 - Presentacion nivel 10

CASOS DE ESTUDIO

Caso de estudio 1: Un Editor de Dibujos

NIVEL 10

Page 6: APO2 - Presentacion nivel 10

HOJAS DE TRABAJO

Hoja de trabajo 1: Mapa de la Ciudad

NIVEL 10

Page 7: APO2 - Presentacion nivel 10

HOJAS DE TRABAJO

Hoja de trabajo 2: Triqui

NIVEL 10

Page 8: APO2 - Presentacion nivel 10

HOJAS DE TRABAJO

Hoja de trabajo 3: Partitura

NIVEL 10

Page 9: APO2 - Presentacion nivel 10

CASOS DE ESTUDIO

Caso de estudio 1: Un Editor de Dibujos

NIVEL 10

Page 10: APO2 - Presentacion nivel 10

CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOS

Requerimientos funcionales.

NIVEL 10

Page 11: APO2 - Presentacion nivel 10

CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOS

Requerimientos funcionales.

NIVEL 10

Page 12: APO2 - Presentacion nivel 10

CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOS

Requerimientos funcionales.

NIVEL 10

Page 13: APO2 - Presentacion nivel 10

CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOS

Requerimientos NO funcionales.

NIVEL 10

Page 14: APO2 - Presentacion nivel 10

CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOS

Modelo del Mundo

NIVEL 10

Page 15: APO2 - Presentacion nivel 10

CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOS

Modelo del la Interfaz

NIVEL 10

Page 16: APO2 - Presentacion nivel 10

INTERFACES

Responsabilidades de los tres tipos de figuras

NIVEL 10

Líneas

Responsabilidades de la clase Linea:

Dibujar la figura

Está dentro un punto

Retornar el texto

Cambiar el texto

Retornar el tipo de letra

Cambiar el tipo de letra

Retornar el tipo de figura

Guardar figura a archivo

Rectángulos

Responsabilidades de la clase Rectangulo:

Dibujar la figura

Está dentro un punto

Retornar el texto

Cambiar el texto

Retornar el tipo de letra

Cambiar el tipo de letra

Retornar el tipo de figura

Guardar figura a archivo

Óvalos

Responsabilidades de la clase Ovalo:

Dibujar la figura

Está dentro un punto

Retornar el texto

Cambiar el texto

Retornar el tipo de letra

Cambiar el tipo de letra

Retornar el tipo de figura

Guardar figura a archivo

NUEVA FIGURA

Responsabilidades de una nueva figura:

Dibujar la figura

Está dentro un punto

Retornar el texto

Cambiar el texto

Retornar el tipo de letra

Cambiar el tipo de letra

Retornar el tipo de figura

Guardar figura a archivo

Page 17: APO2 - Presentacion nivel 10

INTERFACES

Responsabilidades de los tres tipos de figuras

Todas las figuras tienen unas responsabilidades comunes.

La idea con una interfaz es agrupar bajo un mismo conjunto de

signaturas de métodos los compromisos de una o varias clases. Aunque

cada figura los puede implementar de manera distinta, todas las clases

que implementen las figuras DEBEN tener estos métodos o

responsabilidades.

NIVEL 10

Interface IFigura

Responsabilidades de TODAS LAS FIGURAS:

Dibujar la figura

Está dentro un punto

Retornar el texto

Cambiar el texto

Retornar el tipo de letra

Cambiar el tipo de letra

Retornar el tipo de figura

Guardar figura a archivo

Page 18: APO2 - Presentacion nivel 10

INTERFACES

Declaración de una interface

NIVEL 10

Page 19: APO2 - Presentacion nivel 10

INTERFACES

Declaración de una clase que implementa la interfaz

public class Linea implements IFigura

{

//Implementación de los métodos de la interfaz

}

public class Rectangulo implements IFigura

{

//Implementación de los métodos de la interfaz

}

public class Ovalo implements IFigura

{

//Implementación de los métodos de la interfaz

}

NIVEL 10

Con este esquema las tres clases deberían implementar

TODOS los métodos de la interfaz IFigura

Page 20: APO2 - Presentacion nivel 10

MODELO DE CLASES

Definición en UML de la interfaces

NIVEL 10

Linea

Rectangulo

Ovalo

<<interface>> IFigure

<<implements>> <<implements>>

Page 21: APO2 - Presentacion nivel 10

REFERENCIA DE TIPO INTERFAZ

Ejemplos con referencia de tipo Interfaz

NIVEL 10

Una vez definida una interfaz, es posible crear atributos, parámetros o

variables y manipularlos como si fueran objetos normales, con la ÚNICA

restricción que los ÚNICOS métodos que se pueden invocar sobre estas

referencias son los contenidos en la interfaz.

Page 22: APO2 - Presentacion nivel 10

IMPORTANCIA DE LAS INTERFACES

Ejemplos con referencia de tipo Interfaz

NIVEL 10

Con la definición de la interfaz IFigura ya se logró un primer nivel de

desacoplamiento entre las clases del programa, lo que nos va a permitir a

agregar nuevas figuras al editor con mínimas modificaciones.

Page 23: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Interfaces para contenedoras

En Java existen dos interfaces llamadas Collection y List que permiten

a un programador manipular grupos de objetos, sin necesidad de

restringirse a una implementación concreta.

La clase ArrayList que se ha utilizado hasta el momento implementa las

interfaces Collection y List.

Las clases Vector y LinkedList de Java también implementan las

interfaces Collection y List, por lo cual estas clases pueden reemplazar

en cualquier momento a un ArrayList.

Este modelo permite que si un método recibe una referencia a un objeto

que cumpla con la interfaz Collection, este método podría recibir una

instancia de la clase ArrayList, LinkedList o Vector y dicho método

funcionará correctamente.

NIVEL 10

Page 24: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Definición en UML de la interfaces

NIVEL 10

ArrayList

Vector

LinkedList

<<interface>> Collection

<<interface>> List

Page 25: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Interfaz Collection

Utilizada para manejar grupos de elementos, sin ningún orden o posición

específica.

public interface Collection

{

public boolean add( Object o );

public boolean addAll( Collection c );

public void clear();

public boolean contains( Object o );

public boolean isEmpty( );

public Iterator iterator( );

public boolean remove( Object o);

public int size();

}

NIVEL 10

Page 26: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Interfaz List

Incluye todos los métodos de la interfaz Collection concretando en

algunos casos su comportamiento. Contiene los métodos necesarios

para manejar secuencias de valores, en los cuales cada elemento tiene

una posición.

public interface List

{

public void add( int i, Object o );

public Object get( int i );

public int indexOf( Object o );

public Object remove( int i );

public Object set( int i, Object o);

}

NIVEL 10

Page 27: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Clase ArrayList, LinkedList y Vector

Las clases ArrayList, LinkedList y Vector de Java implementan las

interfaces Collection y List.

public class ArrayList implements Collection, List

{

// Implementación de los métodos de las interfaces

// Collection y List

}

public class LinkedList implements Collection, List

{

// Implementación de los métodos de las interfaces

// Collection y List

}

public class Vector implements Collection, List

{

// Implementación de los métodos de las interfaces

// Collection y List

}

NIVEL 10

Page 28: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Ejemplo con un ArrayList de figuras

NIVEL 10

Page 29: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Ejemplo con un LinkedList de figuras

NIVEL 10

Solo se cambia la implementación de la clase que

implementa las interfaces Collection y List.

Page 30: APO2 - Presentacion nivel 10

INTERFACES PARA CONTENEDORAS

Ejemplo con un Vector de figuras

NIVEL 10

Solo se cambia la implementación de la clase que

implementa las interfaces Collection y List.

Page 31: APO2 - Presentacion nivel 10

REFERENCIAS DE TIPO INTERFAZ EN EL CASO DE ESTUDIO

Con el uso de interfaces se logra el desacoplamiento a nivel de

la implementación de la contenedora de figuras utilizada.

NIVEL 10

La única restricción es que

sólo se pueden llamar los

métodos contenidos en la

interfaz List.

Page 32: APO2 - Presentacion nivel 10

REFERENCIAS DE TIPO INTERFAZ EN EL CASO DE ESTUDIO

Con el uso de interfaces se logra el desacoplamiento a nivel de

las diferentes clases de figuras que puede contener el editor de

dibujos.

NIVEL 10

La única restricción es que sólo se pueden llamar los métodos

contenidos en la interfaz IFigura.

Page 33: APO2 - Presentacion nivel 10

ITERADORES PARA RECORRER SECUENCIAS

Sirve para recorrer los elementos de una contenedora sin tener

en cuenta la implementación exacta de la contenedora (ArrayList,

LinkedList, Vector, etc.).

public interface Iterator

{

public boolean hasNetx( );

public Object next();

}

NIVEL 10

Page 34: APO2 - Presentacion nivel 10

ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO

La información de todas las figuras se guardan en un archivo de

texto.

NIVEL 10

Page 35: APO2 - Presentacion nivel 10

ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO

La información de todas las figuras se guardan en un archivo de

texto. Clase Dibujo:

NIVEL 10

Page 36: APO2 - Presentacion nivel 10

ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO

La información de todas las figuras se guardan en un archivo de

texto. Clase Figura:

NIVEL 10

Page 37: APO2 - Presentacion nivel 10

IMPLEMENTACIÓN DEL EDITOR DE FIGURAS

Defina los siguientes métodos en la clase Dibujo:

public void agregarFigura( IFigura f ); // Agrega una nueva figura

public void reiniciar ( ); // Borra todas las figuras

public void hacerClick ( int x, int y ); // Ultima figura en x, y

public IFigura darSeleccionada ( ); // Retorna la figura seleccionada

public void eliminarFigura ( ); // Elimina la figura seleccionada

public boolean haSidoModificado ( ); // Indica si el dibujo fue modificado

public int darNumeroOvalos ( ); // Retorna el número de óvalos del dibujo

public void darFigurasConTexto ( String texto ); // Retorna el número de

figuras del dibujo que tienen el texto recibido como parámetro.

NIVEL 10

Page 38: APO2 - Presentacion nivel 10

OTRAS INTERFACES UTILIZADAS ANTERIORMENTE

En los niveles anteriores se habían trabajado con la siguientes

interfaces:

Nombre de la interface: ActionListener

Paquete: java.awt.event

Métodos: void actionPerformed ( ActionEvent e )

Nombre de la interface: ListSelectionListener

Paquete: java.swing.event

Métodos: void valueChanged ( ListSelectionEvent e )

Nombre de la interface: Serializable

Paquete: java.io

Métodos: Ninguno

NIVEL 10

Page 39: APO2 - Presentacion nivel 10

PREGUNTAS

NIVEL 10

Page 40: APO2 - Presentacion nivel 10

HOJA DE TRABAJO

NIVEL 10

Page 41: APO2 - Presentacion nivel 10

HERENCIA

Atributos de los tres tipos de figuras

NIVEL 10

Líneas

Atributos de una línea:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

Rectángulos

Atributos de un rectángulo:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

El color de fondo

Óvalos

Atributos de un óvalo:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

El color de fondo

Page 42: APO2 - Presentacion nivel 10

HERENCIA

Atributos de los tres tipos de figuras

Todas las figuras tienen atributos comunes, algunas tiene atributos

particulares.

NIVEL 10

Líneas

Atributos de una línea:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

Rectángulos

Atributos de un rectángulo:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

El color de fondo

Óvalos

Atributos de un óvalo:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

El color de fondo

NUEVA FIGURA

Atributos de una nueva figura:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

Atributos específicos

Page 43: APO2 - Presentacion nivel 10

HERENCIA

Permite crear una estructura base para crear nuevas clases a

bajo costo (sin tener que redefiniendo atributos comunes en todas

las figuras).

NIVEL 10

Clase Figura

Atributos comunes a todas las figuras:

El primer punto (donde empieza)

El segundo punto (donde termina)

El texto

El color de la línea

El tipo de línea

El ancho de la línea

Page 44: APO2 - Presentacion nivel 10

SUPERCLASES Y SUBCLASES

Atributos de los tres tipos de figuras (Revisión de todo el

modelo)

NIVEL 10

Page 45: APO2 - Presentacion nivel 10

DECLARACIÓN DE SUPERCLASES Y SUBCLASES

Revisión de todo el modelo

NIVEL 10

Page 46: APO2 - Presentacion nivel 10

CLASES ABSTRACTAS

Son una implementación parcial, que sólo puede ser utilizada

para construir otras clases de manera más eficiente.

No se pueden crear instancias de una clase abstracta, así tenga

definido un método constructor.

NIVEL 10

En el modelo Figura

es una clase

abstracta

Page 47: APO2 - Presentacion nivel 10

DECLARACIÓN DE UNA CLASE ABSTRACTA

En Java se utiliza la palabra abstract para definir este tipo de

clases.

NIVEL 10

Page 48: APO2 - Presentacion nivel 10

MÉTODOS ABSTRACTOS

Son definido en las clases abstractas.

Un método abstracto es un método definido en una clase

abstracta, para el cual no existe una implementación.

Las clases que se construyan de una clase abstracta serán

responsables de implementar los métodos abstractos.

NIVEL 10

Page 49: APO2 - Presentacion nivel 10

DECLARACIÓN DE MÉTODOS ABSTRACTOS

En Java se utiliza la palabra abstract para definir este tipo de

métodos como parte de su signatura.

NIVEL 10

Page 50: APO2 - Presentacion nivel 10

DECLARACIÓN DE MÉTODOS ABSTRACTOS

Todos los métodos de una clase abstracta NO son abstractos.

Son abstractos aquellos cuya implementación es específica para

las subclases (cada subclase los implementa de manera diferente).

NIVEL 10

Page 51: APO2 - Presentacion nivel 10

ASPECTOS IMPORTANTES EN LA DECLARACIÓN DE SUPERCLASES

Y SUBCLASES

Cuando una clase hereda (extiende) de otra, hereda todos los

atributos y métodos de la superclase, la subclase solo debe incluir:

Los nuevos atributos.

Los nuevos métodos.

Una implementación para los métodos abstractos de la superclase.

Los métodos de la superclase para los cuales se quiera cambiar la

implementación. Esto se logra utilizando la misma signatura del

método heredado, con esto, el compilador automáticamente

entiende que la nueva clase quiere modificar la implementación

definida en la superclase. En el momento de redefinir un método se

debe respetar exactamente la misma signatura.

NIVEL 10

Page 52: APO2 - Presentacion nivel 10

POLIMORFISMO Y ASOCIACIÓN DINÁMICA

Polimorfismo: Propiedad de los lenguajes orientados a objetos que

le permite a una variable tomar como valor un objeto de cualquiera de

sus subclases.

Asociación dinámica: Propiedad que garantiza que la decisión de

cuál método invocar se toma siempre en tiempo de ejecución.

NIVEL 10

Page 53: APO2 - Presentacion nivel 10

ELEMENTOS PRIVADOS Y PROTEGIDOS

Hasta el momento hemos definido que todos los atributos son

privados y que todos los métodos son públicos.

En muchos casos es deseable que los métodos de una subclase

tengan acceso directo a los métodos de la superclase, sin llegar al

extremo de dejarlos públicos para todo el mundo.

Se puede utilizar el nuevo tipo de visibilidad denominado

protected.

NIVEL 10

Page 54: APO2 - Presentacion nivel 10

ELEMENTOS PRIVADOS Y PROTEGIDOS

Dependiendo de la visibilidad de un elemento (atributo o

método) es posible restringir o permitir el acceso a ellos de la

siguiente manera:

Si es privado ( private ), el acceso está restringido a los métodos de

la clase.

Si es protegido ( protected ), tienen acceso los métodos de la clase

y los métodos de las subclases.

Si es público ( public ), todos tienen acceso al elemento.

NIVEL 10

Page 55: APO2 - Presentacion nivel 10

ACCESO A MÉTODOS DE LA SUPERCLASE

La variable super nos permite acceder a los métodos de la

superclase cuando:

Queremos invocar su método constructor.

Queremos invocar el método que estamos redefiniendo.

En ningún otro caso es necesario usarla.

NIVEL 10

Page 56: APO2 - Presentacion nivel 10

EJERCICIO DE REPASO DE LOS TEMAS VISTOS

Se desea desarrollar un programa que genere el número de puntos

académicos de los egresados de una universidad. Se sabe que por cada

título que tenga un egresado se otorgan MÁXIMO los siguientes puntos,

teniendo en cuenta el promedio acumulado que haya tenido el egresado

en cada título (de manera proporcional) :

Pregrado (Máximo 50 puntos, si sacó 5)

Especialización (Máximo 100 puntos, si sacó 5)

Maestría (Máximo 200 puntos, si sacó 5)

Doctorado (Máximo 400 puntos, si sacó 5)

De todos los egresados se conoce el código, y el nombre, la demás

información depende de los títulos que haya obtenido cada egresado.

El objetivo principal inicial de todo el mundo, es que dada la información

de UN egresado, se retorne el número de puntos que ha ganado el

egresado de acuerdo a sus títulos académicos. Tenga en cuenta que

en un futuro cercano dependiendo del título que tenga un egresado

se adicionarán nuevos atributos.

NIVEL 10

Page 57: APO2 - Presentacion nivel 10

TAREA

Definir todo el modelo del mundo para el nuevo ejercicio planteado,

incluyendo.

Interfaces

Clases (abstractas y no abstractas)

Atributos (privados o protegidos)

Métodos (privados o protegidos) (abstractos y no abstractos)

NIVEL 10

Page 58: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

Definir todo el modelo del mundo para el nuevo ejercicio planteado.

NIVEL 10

Estudiante

codigo nombre

EgresadoPregrado

promedioPregrado

EgresadoEspecializacion

promedioEspecializacion

<<interface>> IEstudiante

EgresadoMaestria

promedioMaestria

EgresadoDoctorado

notaProyectoDoctorado

Si TODOS los atributos SON PRIVADOS, a cuantos atributos

podría acceder cada clase directamente.

Page 59: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

NIVEL 10

<<interface>> IEstudiante

Page 60: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

NIVEL 10

Estudiante

codigo nombre

Page 61: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

NIVEL 10

EgresadoPregrado

promedioPregrado

Page 62: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

NIVEL 10

EgresadoEspecializacion

promedioEspecializacion

Page 63: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

NIVEL 10

EgresadoMaestria

promedioMaestria

Page 64: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS

NIVEL 10

EgresadoDoctorado

notaProyectoDoctorado

Page 65: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

Definir todo el modelo del mundo para el nuevo ejercicio planteado.

NIVEL 10

Si TODOS los atributos SON PROTEGIDOS, a cuantos atributos

podría acceder cada clase directamente.

Estudiante

codigo nombre

EgresadoPregrado

promedioPregrado

EgresadoEspecializacion

promedioEspecializacion

<<interface>> IEstudiante

EgresadoMaestria

promedioMaestria

EgresadoDoctorado

notaProyectoDoctorado

Page 66: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

NIVEL 10

<<interface>> IEstudiante

Page 67: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

NIVEL 10

Estudiante

codigo nombre

Page 68: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

NIVEL 10

EgresadoPregrado

promedioPregrado

Page 69: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

NIVEL 10

EgresadoEspecializacion

promedioEspecializacion

Page 70: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

NIVEL 10

EgresadoMaestria

promedioMaestria

Page 71: APO2 - Presentacion nivel 10

SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS

NIVEL 10

EgresadoDoctorado

notaProyectoDoctorado

Page 72: APO2 - Presentacion nivel 10

CLASE PRINCIPAL DEL MUNDO PARA AMBOS CASOS

NIVEL 10

<<interface>> IEstudiante

SistemaEgresados estudiante

Page 73: APO2 - Presentacion nivel 10

PREGUNTAS

NIVEL 10

Page 74: APO2 - Presentacion nivel 10

HOJA DE TRABAJO

NIVEL 10

Page 75: APO2 - Presentacion nivel 10

LA CLASE OBJECT

Todas las clases de Java heredan de la clase Object de manera

implícita (no es necesarios colocar el extends).

Es la única clase que no tiene superclase.

La clase Object NO es abstracta y tiene tres métodos:

public boolean equals (Object o): Recibe como parámetro otro objeto y

retorna un valor indicando si dicho objeto y el objeto a quién se le llama

el método son el mismo.

public String toString ( ): Retorna una representación como cadena de

caracteres del objeto. Por defecto nombreClase@numero.

protected Object clone ( ): Retorna una copia del objeto.

NIVEL 10

Page 76: APO2 - Presentacion nivel 10

LA CLASE OBJECT

NIVEL 10

Page 77: APO2 - Presentacion nivel 10

LA CLASE OBJECT

Sirve para garantizar que todos los objetos tengan un

comportamiento común mínimo.

Son las base para construir clases adaptables que aprovechen el

polimorfismo y la asociación dinámica. Por ejemplo el ArrayList.

En una ArrayList se almacenan objetos de tipo Object, por lo cual en

estas contenedoras es posible guardar objetos de cualquier clase.

Debido a esto es que es necesario hacer una operación de casting cada

vez que se saca un elemento con el método get.

NIVEL 10

Page 78: APO2 - Presentacion nivel 10

EXTENSIÓN DE INTERFACES

La herencia también es aplicable a las interfaces. En este caso se

interpreta como la suma de los contratos de la interfaces de las cuales

se hereda.

NIVEL 10

<<interface>> I1

3 métodos propios

<<interface>> I2

5 métodos propios

<<interface>> I3

6 métodos propios

public interface I3 extends I1, I2

{

}

Page 79: APO2 - Presentacion nivel 10

USO DEL MECANISMO DE HERENCIA EN NIVELES ANTERIORES

En niveles anteriores se ha utilizado la herencia en tres casos

específicos.

Para crear Ventanas.

public class InterfazNueva extends JFrame

public class DialogoNuevo extends JDialog

Para crear Panels

public class PanelNuevo extends JPanel implements ActionListener

Para crear Excepciones.

public class NuevaException extends Exception

NIVEL 10

Page 80: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

En Java los menús se proveen utilizando tres clase principales.

JMenuBar: contiene los JMenu

JMenu: contiene los JMenuItem

JMenuItem

NIVEL 10

Page 81: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

Clases JMenuBar, JMenu y JMenuItem.

NIVEL 10

JMenuBar

JMenuBar( )

add ( instancia_de_JMenu )

JMenu

JMenu( título )

add ( instancia_de_JMenuItem )

addSeparator ( )

JMenuItem

JMenuItem( nombre )

setActionCommand ( comando )

addActionListener ( responsable )

Page 82: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

La barra de menús en el modelo de clases de la interfaz.

NIVEL 10

Page 83: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

Creación de la barra de menús.

NIVEL 10

Page 84: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

Creación de la barra de menús.

NIVEL 10

Page 85: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

Creación de la barra de menús.

NIVEL 10

Page 86: APO2 - Presentacion nivel 10

MANEJO DE MENÚS

Creación de la barra de menús.

NIVEL 10

Page 87: APO2 - Presentacion nivel 10

TEMAS PENDIENTES

Manejo de eventos del ratón

Modelo gráfico en Java

Manejo de la superficie de dibujo

Manejo de formas geométricas

Evolución del editor

NIVEL 10

Page 88: APO2 - Presentacion nivel 10

LABORATORIO DEL NIVEL 10

EN EL LABORATORIO DEL NIVEL SE

REPASARAN TODOS LOS TEMAS DEL NIVEL 10

NIVEL 10

Page 89: APO2 - Presentacion nivel 10

PREGUNTAS

NIVEL 10

Page 90: APO2 - Presentacion nivel 10

HOJA DE TRABAJO

NIVEL 10