NIVEL 10         ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2)                     Mario José Villamizar Cano                   mj....
NIVEL 10             REDES SOCIALES           mjvc007@hotmail.com        http://twitter.com/mariocloudhttp://linkedin.com/...
NIVEL 10NIVEL 10 – MECANISMOS DE REUTILIZACIÓN Y DESACOPLAMIENTOCaso de estudio 1 – Editor de dibujos   Interfaces   Refer...
NIVEL 10NIVEL 10 – MECANISMOS DE REUTILIZACIÓN Y DESACOPLAMIENTOCaso de estudio 1 – Editor de dibujos   Herencia   Extensi...
NIVEL 10                    CASOS DE ESTUDIOCaso de estudio 1: Un Editor de Dibujos
NIVEL 10                    HOJAS DE TRABAJOHoja de trabajo 1: Mapa de la Ciudad
NIVEL 10                      HOJAS DE TRABAJOHoja de trabajo 2: Triqui
NIVEL 10                     HOJAS DE TRABAJOHoja de trabajo 3: Partitura
NIVEL 10                    CASOS DE ESTUDIOCaso de estudio 1: Un Editor de Dibujos
NIVEL 10       CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos funcionales.
NIVEL 10       CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos funcionales.
NIVEL 10       CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos funcionales.
NIVEL 10       CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos NO funcionales.
NIVEL 10     CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSModelo del Mundo
NIVEL 10      CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSModelo del la Interfaz
NIVEL 10                                       INTERFACES    Responsabilidades de los tres tipos de figuras              L...
NIVEL 10                            INTERFACES   Responsabilidades de los tres tipos de figurasTodas las figuras tienen un...
NIVEL 10                       INTERFACESDeclaración de una interface
NIVEL 10                           INTERFACES   Declaración de una clase que implementa la interfazpublic class Linea impl...
NIVEL 10                   MODELO DE CLASESDefinición en UML de la interfaces                        <<interface>>        ...
NIVEL 10                  REFERENCIA DE TIPO INTERFAZ  Ejemplos con referencia de tipo Interfaz Una vez definida una inter...
NIVEL 10                 IMPORTANCIA DE LAS INTERFACES   Ejemplos con referencia de tipo Interfaz  Con la definición de la...
NIVEL 10                INTERFACES PARA CONTENEDORAS   Interfaces para contenedorasEn Java existen dos interfaces llamadas...
NIVEL 10             INTERFACES PARA CONTENEDORASDefinición en UML de la interfaces                                       ...
NIVEL 10                 INTERFACES PARA CONTENEDORAS    Interfaz CollectionUtilizada para manejar grupos de elementos, si...
NIVEL 10                    INTERFACES PARA CONTENEDORAS    Interfaz ListIncluye todos los métodos de la interfaz Collecti...
NIVEL 10                 INTERFACES PARA CONTENEDORAS   Clase ArrayList, LinkedList y VectorLas clases ArrayList, LinkedLi...
NIVEL 10           INTERFACES PARA CONTENEDORASEjemplo con un ArrayList de figuras
NIVEL 10           INTERFACES PARA CONTENEDORASEjemplo con un LinkedList de figuras                          Solo se cambi...
NIVEL 10           INTERFACES PARA CONTENEDORASEjemplo con un Vector de figuras                          Solo se cambia la...
NIVEL 10   REFERENCIAS DE TIPO INTERFAZ EN EL CASO DE ESTUDIO    Con el uso de interfaces se logra el desacoplamiento a ni...
NIVEL 10   REFERENCIAS DE TIPO INTERFAZ EN EL CASO DE ESTUDIO   Con el uso de interfaces se logra el desacoplamiento a niv...
NIVEL 10           ITERADORES PARA RECORRER SECUENCIAS   Sirve para recorrer los elementos de una contenedora sin teneren ...
NIVEL 10       ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO    La información de todas las figuras se guardan en un archivo...
NIVEL 10       ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO    La información de todas las figuras se guardan en un archivo...
NIVEL 10       ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO    La información de todas las figuras se guardan en un archivo...
NIVEL 10             IMPLEMENTACIÓN DEL EDITOR DE FIGURAS    Defina los siguientes métodos en la clase Dibujo:public void ...
NIVEL 10        OTRAS INTERFACES UTILIZADAS ANTERIORMENTE    En los niveles anteriores se habían trabajado con la siguient...
NIVEL 10PREGUNTAS
NIVEL 10HOJA DE TRABAJO
NIVEL 10                                   HERENCIAAtributos de los tres tipos de figuras            Líneas               ...
NIVEL 10                                      HERENCIA   Atributos de los tres tipos de figurasTodas las figuras tienen at...
NIVEL 10                              HERENCIA    Permite crear una estructura base para crear nuevas clases abajo costo (...
NIVEL 10                SUPERCLASES Y SUBCLASES  Atributos de los tres tipos de figuras (Revisión de todo elmodelo)
NIVEL 10     DECLARACIÓN DE SUPERCLASES Y SUBCLASESRevisión de todo el modelo
NIVEL 10                     CLASES ABSTRACTAS   Son una implementación parcial, que sólo puede ser utilizadapara construi...
NIVEL 10           DECLARACIÓN DE UNA CLASE ABSTRACTA   En Java se utiliza la palabra abstract para definir este tipo decl...
NIVEL 10                  MÉTODOS ABSTRACTOS   Son definido en las clases abstractas.   Un método abstracto es un método d...
NIVEL 10           DECLARACIÓN DE MÉTODOS ABSTRACTOS   En Java se utiliza la palabra abstract para definir este tipo demét...
NIVEL 10           DECLARACIÓN DE MÉTODOS ABSTRACTOS    Todos los métodos de una clase abstracta NO son abstractos.Son abs...
NIVEL 10ASPECTOS IMPORTANTES EN LA DECLARACIÓN DE SUPERCLASES                     Y SUBCLASES    Cuando una clase hereda (...
NIVEL 10             POLIMORFISMO Y ASOCIACIÓN DINÁMICA    Polimorfismo: Propiedad de los lenguajes orientados a objetos q...
NIVEL 10             ELEMENTOS PRIVADOS Y PROTEGIDOS    Hasta el momento hemos definido que todos los atributos sonprivado...
NIVEL 10              ELEMENTOS PRIVADOS Y PROTEGIDOS   Dependiendo de la visibilidad de un elemento (atributo ométodo) es...
NIVEL 10            ACCESO A MÉTODOS DE LA SUPERCLASE   La variable super nos permite acceder a los métodos de lasuperclas...
NIVEL 10          EJERCICIO DE REPASO DE LOS TEMAS VISTOS     Se desea desarrollar un programa que genere el número de pun...
NIVEL 10                                    TAREA    Definir todo el modelo del mundo para el nuevo ejercicio planteado,in...
NIVEL 10              SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS      Definir todo el modelo del mundo para el nuevo ejercicio ...
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS             <<interface>>              IEstudiante
NIVEL 10         SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS  Estudiantecodigonombre
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS          EgresadoPregrado          promedioPregrado
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS        EgresadoEspecializacion        promedioEspecializacion
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS          EgresadoMaestria          promedioMaestria
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS         EgresadoDoctorado         notaProyectoDoctorado
NIVEL 10            SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS      Definir todo el modelo del mundo para el nuevo ejercicio ...
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS              <<interface>>               IEstudiante
NIVEL 10         SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS  Estudiantecodigonombre
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS           EgresadoPregrado           promedioPregrado
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS         EgresadoEspecializacion         promedioEspecializacion
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS           EgresadoMaestria           promedioMaestria
NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS          EgresadoDoctorado          notaProyectoDoctorado
NIVEL 10CLASE PRINCIPAL DEL MUNDO PARA AMBOS CASOS                                 <<interface>>SistemaEgresados    estudi...
NIVEL 10PREGUNTAS
NIVEL 10HOJA DE TRABAJO
NIVEL 10                          LA CLASE OBJECT   Todas las clases de Java heredan de la clase Object de maneraimplícita...
NIVEL 10LA CLASE OBJECT
NIVEL 10                         LA CLASE OBJECT   Sirve para garantizar que         todos   los   objetos   tengan   unco...
NIVEL 10                        EXTENSIÓN DE INTERFACES     <<interface>>           <<interface>>           I1            ...
NIVEL 10 USO DEL MECANISMO DE HERENCIA EN NIVELES ANTERIORES   En niveles anteriores se ha utilizado la herencia en tres c...
NIVEL 10                         MANEJO DE MENÚS   En Java los menús se proveen utilizando tres clase principales.JMenuBar...
NIVEL 10                             MANEJO DE MENÚS    Clases JMenuBar, JMenu y JMenuItem.JMenuBar                       ...
NIVEL 10                     MANEJO DE MENÚSLa barra de menús en el modelo de clases de la interfaz.
NIVEL 10                     MANEJO DE MENÚSCreación de la barra de menús.
NIVEL 10                     MANEJO DE MENÚSCreación de la barra de menús.
NIVEL 10                     MANEJO DE MENÚSCreación de la barra de menús.
NIVEL 10                     MANEJO DE MENÚSCreación de la barra de menús.
NIVEL 10                       TEMAS PENDIENTESManejo de eventos del ratónModelo gráfico en JavaManejo de la superficie de...
NIVEL 10          LABORATORIO DEL NIVEL 10    EN EL LABORATORIO DEL NIVEL SEREPASARAN TODOS LOS TEMAS DEL NIVEL 10
NIVEL 10PREGUNTAS
NIVEL 10HOJA DE TRABAJO
Upcoming SlideShare
Loading in...5
×

APO2 - Presentacion nivel 10

2,665

Published on

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.

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,665
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
68
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

APO2 - Presentacion nivel 10

  1. 1. NIVEL 10 ALGORÍTMICA Y PROGRAMACIÓN 2 (APO 2) Mario José Villamizar Cano mj.villamizar24@uniandes.edu.co Oficina ML-637http://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
  2. 2. NIVEL 10 REDES SOCIALES mjvc007@hotmail.com http://twitter.com/mariocloudhttp://linkedin.com/in/mariojosevillamizarcano
  3. 3. NIVEL 10NIVEL 10 – MECANISMOS DE REUTILIZACIÓN Y DESACOPLAMIENTOCaso 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)
  4. 4. NIVEL 10NIVEL 10 – MECANISMOS DE REUTILIZACIÓN Y DESACOPLAMIENTOCaso 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
  5. 5. NIVEL 10 CASOS DE ESTUDIOCaso de estudio 1: Un Editor de Dibujos
  6. 6. NIVEL 10 HOJAS DE TRABAJOHoja de trabajo 1: Mapa de la Ciudad
  7. 7. NIVEL 10 HOJAS DE TRABAJOHoja de trabajo 2: Triqui
  8. 8. NIVEL 10 HOJAS DE TRABAJOHoja de trabajo 3: Partitura
  9. 9. NIVEL 10 CASOS DE ESTUDIOCaso de estudio 1: Un Editor de Dibujos
  10. 10. NIVEL 10 CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos funcionales.
  11. 11. NIVEL 10 CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos funcionales.
  12. 12. NIVEL 10 CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos funcionales.
  13. 13. NIVEL 10 CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSRequerimientos NO funcionales.
  14. 14. NIVEL 10 CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSModelo del Mundo
  15. 15. NIVEL 10 CASO DE ESTUDIO 1 – UN EDITOR DE DIBUJOSModelo del la Interfaz
  16. 16. NIVEL 10 INTERFACES Responsabilidades de los tres tipos de figuras Líneas RectángulosResponsabilidades de la clase Linea: Responsabilidades de la clase Rectangulo:Dibujar la figura Dibujar la figuraEstá dentro un punto Está dentro un puntoRetornar el texto Retornar el textoCambiar el texto Cambiar el textoRetornar el tipo de letra Retornar el tipo de letraCambiar el tipo de letra Cambiar el tipo de letraRetornar el tipo de figura Retornar el tipo de figuraGuardar figura a archivo Guardar figura a archivo Óvalos NUEVA FIGURAResponsabilidades de la clase Ovalo: Responsabilidades de una nueva figura:Dibujar la figura Dibujar la figuraEstá dentro un punto Está dentro un puntoRetornar el texto Retornar el textoCambiar el texto Cambiar el textoRetornar el tipo de letra Retornar el tipo de letraCambiar el tipo de letra Cambiar el tipo de letraRetornar el tipo de figura Retornar el tipo de figuraGuardar figura a archivo Guardar figura a archivo
  17. 17. NIVEL 10 INTERFACES Responsabilidades de los tres tipos de figurasTodas las figuras tienen unas responsabilidades comunes.La idea con una interfaz es agrupar bajo un mismo conjunto designaturas de métodos los compromisos de una o varias clases. Aunquecada figura los puede implementar de manera distinta, todas las clasesque implementen las figuras DEBEN tener estos métodos oresponsabilidades. 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
  18. 18. NIVEL 10 INTERFACESDeclaración de una interface
  19. 19. NIVEL 10 INTERFACES Declaración de una clase que implementa la interfazpublic 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} Con este esquema las tres clases deberían implementar TODOS los métodos de la interfaz IFigura
  20. 20. NIVEL 10 MODELO DE CLASESDefinición en UML de la interfaces <<interface>> IFigure <<implements>> <<implements>> Linea Rectangulo Ovalo
  21. 21. NIVEL 10 REFERENCIA DE TIPO INTERFAZ Ejemplos con referencia de tipo Interfaz Una vez definida una interfaz, es posible crear atributos, parámetros ovariables y manipularlos como si fueran objetos normales, con la ÚNICArestricción que los ÚNICOS métodos que se pueden invocar sobre estas referencias son los contenidos en la interfaz.
  22. 22. NIVEL 10 IMPORTANCIA DE LAS INTERFACES Ejemplos con referencia de tipo Interfaz Con la definición de la interfaz IFigura ya se logró un primer nivel dedesacoplamiento entre las clases del programa, lo que nos va a permitir a agregar nuevas figuras al editor con mínimas modificaciones.
  23. 23. NIVEL 10 INTERFACES PARA CONTENEDORAS Interfaces para contenedorasEn Java existen dos interfaces llamadas Collection y List que permitena un programador manipular grupos de objetos, sin necesidad derestringirse a una implementación concreta.La clase ArrayList que se ha utilizado hasta el momento implementa lasinterfaces Collection y List.Las clases Vector y LinkedList de Java también implementan lasinterfaces Collection y List, por lo cual estas clases pueden reemplazaren cualquier momento a un ArrayList.Este modelo permite que si un método recibe una referencia a un objetoque cumpla con la interfaz Collection, este método podría recibir unainstancia de la clase ArrayList, LinkedList o Vector y dicho métodofuncionará correctamente.
  24. 24. NIVEL 10 INTERFACES PARA CONTENEDORASDefinición en UML de la interfaces Vector <<interface>> Collection ArrayList <<interface>> List LinkedList
  25. 25. NIVEL 10 INTERFACES PARA CONTENEDORAS Interfaz CollectionUtilizada para manejar grupos de elementos, sin ningún orden o posiciónespecí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();}
  26. 26. NIVEL 10 INTERFACES PARA CONTENEDORAS Interfaz ListIncluye todos los métodos de la interfaz Collection concretando enalgunos casos su comportamiento. Contiene los métodos necesariospara manejar secuencias de valores, en los cuales cada elemento tieneuna 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);}
  27. 27. NIVEL 10 INTERFACES PARA CONTENEDORAS Clase ArrayList, LinkedList y VectorLas clases ArrayList, LinkedList y Vector de Java implementan lasinterfaces 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}
  28. 28. NIVEL 10 INTERFACES PARA CONTENEDORASEjemplo con un ArrayList de figuras
  29. 29. NIVEL 10 INTERFACES PARA CONTENEDORASEjemplo con un LinkedList de figuras Solo se cambia la implementación de la clase que implementa las interfaces Collection y List.
  30. 30. NIVEL 10 INTERFACES PARA CONTENEDORASEjemplo con un Vector de figuras Solo se cambia la implementación de la clase que implementa las interfaces Collection y List.
  31. 31. NIVEL 10 REFERENCIAS DE TIPO INTERFAZ EN EL CASO DE ESTUDIO Con el uso de interfaces se logra el desacoplamiento a nivel dela implementación de la contenedora de figuras utilizada. La única restricción es que sólo se pueden llamar los métodos contenidos en la interfaz List.
  32. 32. NIVEL 10 REFERENCIAS DE TIPO INTERFAZ EN EL CASO DE ESTUDIO Con el uso de interfaces se logra el desacoplamiento a nivel delas diferentes clases de figuras que puede contener el editor dedibujos. La única restricción es que sólo se pueden llamar los métodos contenidos en la interfaz IFigura.
  33. 33. NIVEL 10 ITERADORES PARA RECORRER SECUENCIAS Sirve para recorrer los elementos de una contenedora sin teneren cuenta la implementación exacta de la contenedora (ArrayList,LinkedList, Vector, etc.).public interface Iterator{ public boolean hasNetx( ); public Object next();}
  34. 34. NIVEL 10 ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO La información de todas las figuras se guardan en un archivo detexto.
  35. 35. NIVEL 10 ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO La información de todas las figuras se guardan en un archivo detexto. Clase Dibujo:
  36. 36. NIVEL 10 ARCHIVO DE PERSISTENCIA DEL CASO DE ESTUDIO La información de todas las figuras se guardan en un archivo detexto. Clase Figura:
  37. 37. 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 figurapublic void reiniciar ( ); // Borra todas las figuraspublic void hacerClick ( int x, int y ); // Ultima figura en x, ypublic IFigura darSeleccionada ( ); // Retorna la figura seleccionadapublic void eliminarFigura ( ); // Elimina la figura seleccionadapublic boolean haSidoModificado ( ); // Indica si el dibujo fue modificadopublic int darNumeroOvalos ( ); // Retorna el número de óvalos del dibujopublic void darFigurasConTexto ( String texto ); // Retorna el número defiguras del dibujo que tienen el texto recibido como parámetro.
  38. 38. NIVEL 10 OTRAS INTERFACES UTILIZADAS ANTERIORMENTE En los niveles anteriores se habían trabajado con la siguientesinterfaces:Nombre de la interface: ActionListenerPaquete: java.awt.eventMétodos: void actionPerformed ( ActionEvent e )Nombre de la interface: ListSelectionListenerPaquete: java.swing.eventMétodos: void valueChanged ( ListSelectionEvent e )Nombre de la interface: SerializablePaquete: java.ioMétodos: Ninguno
  39. 39. NIVEL 10PREGUNTAS
  40. 40. NIVEL 10HOJA DE TRABAJO
  41. 41. NIVEL 10 HERENCIAAtributos de los tres tipos de figuras Líneas RectángulosAtributos de una línea: Atributos de un rectángulo:El primer punto (donde empieza) El primer punto (donde empieza)El segundo punto (donde termina) El segundo punto (donde termina)El texto El textoEl color de la línea El color de la líneaEl tipo de línea El tipo de líneaEl ancho de la 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
  42. 42. NIVEL 10 HERENCIA Atributos de los tres tipos de figurasTodas las figuras tienen atributos comunes, algunas tiene atributosparticulares. Líneas Rectángulos Atributos de una línea: Atributos de un rectángulo: El primer punto (donde empieza) El primer punto (donde empieza) El segundo punto (donde termina) El segundo punto (donde termina) El texto El texto El color de la línea El color de la línea El tipo de línea El tipo de línea El ancho de la línea El ancho de la línea El color de fondo Óvalos NUEVA FIGURA Atributos de un óvalo: Atributos de una nueva figura: El primer punto (donde empieza) El primer punto (donde empieza) El segundo punto (donde termina) El segundo punto (donde termina) El texto El texto El color de la línea El color de la línea El tipo de línea El tipo de línea El ancho de la línea El ancho de la línea El color de fondo Atributos específicos
  43. 43. NIVEL 10 HERENCIA Permite crear una estructura base para crear nuevas clases abajo costo (sin tener que redefiniendo atributos comunes en todaslas figuras). 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
  44. 44. NIVEL 10 SUPERCLASES Y SUBCLASES Atributos de los tres tipos de figuras (Revisión de todo elmodelo)
  45. 45. NIVEL 10 DECLARACIÓN DE SUPERCLASES Y SUBCLASESRevisión de todo el modelo
  46. 46. NIVEL 10 CLASES ABSTRACTAS Son una implementación parcial, que sólo puede ser utilizadapara construir otras clases de manera más eficiente. No se pueden crear instancias de una clase abstracta, así tengadefinido un método constructor. En el modelo Figura es una clase abstracta
  47. 47. NIVEL 10 DECLARACIÓN DE UNA CLASE ABSTRACTA En Java se utiliza la palabra abstract para definir este tipo declases.
  48. 48. NIVEL 10 MÉTODOS ABSTRACTOS Son definido en las clases abstractas. Un método abstracto es un método definido en una claseabstracta, para el cual no existe una implementación. Las clases que se construyan de una clase abstracta seránresponsables de implementar los métodos abstractos.
  49. 49. NIVEL 10 DECLARACIÓN DE MÉTODOS ABSTRACTOS En Java se utiliza la palabra abstract para definir este tipo demétodos como parte de su signatura.
  50. 50. 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 paralas subclases (cada subclase los implementa de manera diferente).
  51. 51. NIVEL 10ASPECTOS IMPORTANTES EN LA DECLARACIÓN DE SUPERCLASES Y SUBCLASES Cuando una clase hereda (extiende) de otra, hereda todos losatributos 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 laimplementación. Esto se logra utilizando la misma signatura delmétodo heredado, con esto, el compilador automáticamenteentiende que la nueva clase quiere modificar la implementacióndefinida en la superclase. En el momento de redefinir un método sedebe respetar exactamente la misma signatura.
  52. 52. NIVEL 10 POLIMORFISMO Y ASOCIACIÓN DINÁMICA Polimorfismo: Propiedad de los lenguajes orientados a objetos quele permite a una variable tomar como valor un objeto de cualquiera desus subclases. Asociación dinámica: Propiedad que garantiza que la decisión decuál método invocar se toma siempre en tiempo de ejecución.
  53. 53. NIVEL 10 ELEMENTOS PRIVADOS Y PROTEGIDOS Hasta el momento hemos definido que todos los atributos sonprivados y que todos los métodos son públicos. En muchos casos es deseable que los métodos de una subclasetengan acceso directo a los métodos de la superclase, sin llegar alextremo de dejarlos públicos para todo el mundo. Se puede utilizar el nuevo tipo de visibilidad denominadoprotected.
  54. 54. NIVEL 10 ELEMENTOS PRIVADOS Y PROTEGIDOS Dependiendo de la visibilidad de un elemento (atributo ométodo) es posible restringir o permitir el acceso a ellos de lasiguiente manera:Si es privado ( private ), el acceso está restringido a los métodos dela clase.Si es protegido ( protected ), tienen acceso los métodos de la clasey los métodos de las subclases.Si es público ( public ), todos tienen acceso al elemento.
  55. 55. NIVEL 10 ACCESO A MÉTODOS DE LA SUPERCLASE La variable super nos permite acceder a los métodos de lasuperclase cuando:Queremos invocar su método constructor.Queremos invocar el método que estamos redefiniendo.En ningún otro caso es necesario usarla.
  56. 56. NIVEL 10 EJERCICIO DE REPASO DE LOS TEMAS VISTOS Se desea desarrollar un programa que genere el número de puntosacadémicos de los egresados de una universidad. Se sabe que por cadatítulo que tenga un egresado se otorgan MÁXIMO los siguientes puntos,teniendo en cuenta el promedio acumulado que haya tenido el egresadoen 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ásinformación depende de los títulos que haya obtenido cada egresado.El objetivo principal inicial de todo el mundo, es que dada la informaciónde UN egresado, se retorne el número de puntos que ha ganado elegresado de acuerdo a sus títulos académicos. Tenga en cuenta queen un futuro cercano dependiendo del título que tenga un egresadose adicionarán nuevos atributos.
  57. 57. NIVEL 10 TAREA Definir todo el modelo del mundo para el nuevo ejercicio planteado,incluyendo.InterfacesClases (abstractas y no abstractas)Atributos (privados o protegidos)Métodos (privados o protegidos) (abstractos y no abstractos)
  58. 58. NIVEL 10 SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS Definir todo el modelo del mundo para el nuevo ejercicio planteado. <<interface>> Estudiante EgresadoPregrado IEstudiante codigo promedioPregrado nombreEgresadoDoctorado EgresadoMaestria EgresadoEspecializacionnotaProyectoDoctorado promedioMaestria promedioEspecializacion Si TODOS los atributos SON PRIVADOS, a cuantos atributos podría acceder cada clase directamente.
  59. 59. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS <<interface>> IEstudiante
  60. 60. NIVEL 10 SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS Estudiantecodigonombre
  61. 61. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS EgresadoPregrado promedioPregrado
  62. 62. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS EgresadoEspecializacion promedioEspecializacion
  63. 63. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS EgresadoMaestria promedioMaestria
  64. 64. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PRIVADOS EgresadoDoctorado notaProyectoDoctorado
  65. 65. NIVEL 10 SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS Definir todo el modelo del mundo para el nuevo ejercicio planteado. <<interface>> Estudiante EgresadoPregrado IEstudiante codigo promedioPregrado nombreEgresadoDoctorado EgresadoMaestria EgresadoEspecializacionnotaProyectoDoctorado promedioMaestria promedioEspecializacion Si TODOS los atributos SON PROTEGIDOS, a cuantos atributos podría acceder cada clase directamente.
  66. 66. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS <<interface>> IEstudiante
  67. 67. NIVEL 10 SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS Estudiantecodigonombre
  68. 68. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS EgresadoPregrado promedioPregrado
  69. 69. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS EgresadoEspecializacion promedioEspecializacion
  70. 70. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS EgresadoMaestria promedioMaestria
  71. 71. NIVEL 10SOLUCIÓN TAREA CON ATRIBUTOS PROTEGIDOS EgresadoDoctorado notaProyectoDoctorado
  72. 72. NIVEL 10CLASE PRINCIPAL DEL MUNDO PARA AMBOS CASOS <<interface>>SistemaEgresados estudiante IEstudiante
  73. 73. NIVEL 10PREGUNTAS
  74. 74. NIVEL 10HOJA DE TRABAJO
  75. 75. NIVEL 10 LA CLASE OBJECT Todas las clases de Java heredan de la clase Object de maneraimplí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 yretorna un valor indicando si dicho objeto y el objeto a quién se le llamael método son el mismo.public String toString ( ): Retorna una representación como cadena decaracteres del objeto. Por defecto nombreClase@numero.protected Object clone ( ): Retorna una copia del objeto.
  76. 76. NIVEL 10LA CLASE OBJECT
  77. 77. NIVEL 10 LA CLASE OBJECT Sirve para garantizar que todos los objetos tengan uncomportamiento común mínimo. Son las base para construir clases adaptables que aprovechen elpolimorfismo y la asociación dinámica. Por ejemplo el ArrayList. En una ArrayList se almacenan objetos de tipo Object, por lo cual enestas contenedoras es posible guardar objetos de cualquier clase.Debido a esto es que es necesario hacer una operación de casting cadavez que se saca un elemento con el método get.
  78. 78. NIVEL 10 EXTENSIÓN DE INTERFACES <<interface>> <<interface>> I1 I2 3 métodos propios 5 métodos propios public interface I3 extends I1, I2 <<interface>> { I3 6 métodos propios } La herencia también es aplicable a las interfaces. En este caso seinterpreta como la suma de los contratos de la interfaces de las cualesse hereda.
  79. 79. NIVEL 10 USO DEL MECANISMO DE HERENCIA EN NIVELES ANTERIORES En niveles anteriores se ha utilizado la herencia en tres casosespecíficos.Para crear Ventanas.public class InterfazNueva extends JFramepublic class DialogoNuevo extends JDialogPara crear Panelspublic class PanelNuevo extends JPanel implements ActionListenerPara crear Excepciones.public class NuevaException extends Exception
  80. 80. NIVEL 10 MANEJO DE MENÚS En Java los menús se proveen utilizando tres clase principales.JMenuBar: contiene los JMenuJMenu: contiene los JMenuItemJMenuItem
  81. 81. NIVEL 10 MANEJO DE MENÚS Clases JMenuBar, JMenu y JMenuItem.JMenuBar JMenuJMenuBar( ) JMenu( título )add ( instancia_de_JMenu ) add ( instancia_de_JMenuItem ) addSeparator ( ) JMenuItem JMenuItem( nombre ) setActionCommand ( comando ) addActionListener ( responsable )
  82. 82. NIVEL 10 MANEJO DE MENÚSLa barra de menús en el modelo de clases de la interfaz.
  83. 83. NIVEL 10 MANEJO DE MENÚSCreación de la barra de menús.
  84. 84. NIVEL 10 MANEJO DE MENÚSCreación de la barra de menús.
  85. 85. NIVEL 10 MANEJO DE MENÚSCreación de la barra de menús.
  86. 86. NIVEL 10 MANEJO DE MENÚSCreación de la barra de menús.
  87. 87. NIVEL 10 TEMAS PENDIENTESManejo de eventos del ratónModelo gráfico en JavaManejo de la superficie de dibujoManejo de formas geométricasEvolución del editor
  88. 88. NIVEL 10 LABORATORIO DEL NIVEL 10 EN EL LABORATORIO DEL NIVEL SEREPASARAN TODOS LOS TEMAS DEL NIVEL 10
  89. 89. NIVEL 10PREGUNTAS
  90. 90. NIVEL 10HOJA DE TRABAJO
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×