Programación II
Ing. Mauricio Paletta, Msc
Presentación
Fundamentos de la Orientación a Objetos
UNIVERSIDAD NACIONAL EXPER...
Programación II
Fundamentos de la Orientación a Objetos
ABSTRACCION TIPOS
MODULARIDAD CONCURRENCIA
ENCAPSULAMIEN. PERSISTE...
Programación II
Principios de la Orientación a Objetos
Abstracción
Programación II
Principios de la Orientación a Objetos
Abstracción
• Capacidad de adquirir conceptos (idea
particular o l...
Programación II
Principios de la Orientación a Objetos
Abstracción
• Es una forma de manejar la complejidad
de los objeto...
Programación II
Principios de la Orientación a Objetos
Abstracción
• Se implementa
mediante
la identificación
de clases.
Programación II
Encapsulamiento
Principios de la Orientación a Objetos
Programación II
• Esconder todos los detalles de un objeto
que no contribuyen al entendimiento de
sus características esen...
Programación II
• Permite realizar cambios a los programas
con poco esfuerzo.
• La idea principal es proteger los datos de...
Programación II
Modularidad
Principios de la Orientación a Objetos
Programación II
• Descomponer un sistema en un conjunto
de unidades discretas.
• Está asociado al concepto de
programación...
Programación II
• Los módulos son generalmente unidades
indivisibles.
• 5 criterios, 5 reglas y 5 principios.
• Se impleme...
Programación II
Criterio 1 - Descomposición modular:
Descomponer el problema de software en un
pequeño número de sub-probl...
Programación II
Criterio 2 - Composición modular:
Favorece la producción de elementos que se
pueden combinar libremente un...
Programación II
Criterio 3 - Comprensibilidad modular:
Ayuda a producir software en el cual un lector
humano puede entende...
Programación II
Criterio 4 - Continuidad modular:
Un pequeño cambio en la especificación de un
problema provoca sólo cambi...
Programación II
Criterio 5 - Protección modular:
Produce arquitecturas en las cuales el efecto de
una situación anormal qu...
Programación II
Regla 1 – Correspondencia directa:
La estructura modular obtenida en el proceso de
construcción de softwar...
Programación II
Regla 2 – Pocas interfaces:
Cada módulo debe comunicarse con el menor
número de módulos posible.
Principio...
Programación II
Principios de la Orientación a Objetos
Modularidad
Regla 3 – Pequeñas interfaces:
Si dos módulos se comun...
Programación II
Principios de la Orientación a Objetos
Modularidad
Regla 4 – Interfaces explícitas:
Siempre que dos módul...
Programación II
Principios de la Orientación a Objetos
Modularidad
Regla 5 – Ocultamiento de información:
Cada módulo deb...
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 1 – Unidades modulares
lingüísticas:
Los mód...
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 2 – Auto-documentación:
Toda la información ...
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 3 – Acceso uniforme:
Todos los servicios ofr...
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 4 – Abierto / Cerrado:
Los módulos deben ser...
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 5 – Elección única:
Siempre que un sistema d...
Programación II
Jerarquía
Principios de la Orientación a Objetos
Programación II
Jerarquía
• Es el acto o resultado de distinguir un
concepto que es más general que otro.
• Permite exami...
Programación II
Jerarquía
• Permite empaquetar la abstracción en
pequeñas unidades.
• Representa la organización de una
a...
Programación II
Tipos
Principios de la Orientación a Objetos
Programación II
Tipos
• Permite agrupar o formar un conjunto de
objetos con características o
comportamientos similares.
...
Programación II
Tipos
• Se implementa mediante la descripción o
identificación de los elementos que
describen una clase:
...
Programación II
Concurrencia
Principios de la Orientación a Objetos
Programación II
Concurrencia
• Es la propiedad que distingue un objeto
activo de uno que no lo es.
• Permite a diferentes...
Programación II
Concurrencia
• Se implementa mediante el proceso de
creación o instanciación de objetos a
partir de su cl...
Programación II
Persistencia
Principios de la Orientación a Objetos
Programación II
Persistencia
• Es la propiedad que un objeto tiene de
existir en el tiempo y en el espacio.
• Un objeto e...
Programación II
Persistencia
• Tanto la necesidad de espacio para
almacenar el objeto como su recupera-
ción, involucran ...
Programación II
Polimorfismo
Principios de la Orientación a Objetos
Programación II
• Es el fenómeno mediante el cual una
operación adopta varias formas de
implementación.
• Habilidad para u...
Programación II
• Para el usuario, la visión del operador es
una sola, el objeto se encarga de decidir
qué hacer; los deta...
Programación II
• Ventajas: extensibilidad, código compacto,
claridad.
• Se implementa mediante la sobrecarga de
funciones...
Programación II
Una abstracción simple sirve
Coacción como diferentes tipos mediante
una conversión de tipos implícita
• E...
Programación II
Enlace Dinámico
Términos Técnicos
Programación II
• Enlace: conectar una llamada de función
al cuerpo de la función; enlace estático o
temprano: se lleva a ...
Programación II
• Es un elemento necesario para poder
realizar el polimorfismo.
• Para su implementación, debe existir un
...
Programación II
enlace estático
enlace dinámico
vs
Términos Técnicos
Enlace Dinámico
Programación II
Objeto
Mecanismos básicos
Programación II
• Son las unidades básicas de
construcción, para conceptualización,
diseño o programación.
• Son instancia...
Programación II
• Desde la perspectiva de un programa, los
objetos son módulos que contienen datos
(atributos) y las instr...
Programación II
• La habilidad para reconocer objetos es
una herramienta que los humanos
aprenden desde muy temprana edad....
Programación II
Fórmula conceptual:
Objeto = Atributos + Métodos
Mecanismos básicos
Objeto
Programación II
Mecanismos básicos
Objeto
Atributo
Método
Mensaje
Módulo /
Paquete
Programación II
Objeto - Estado
• Contiene todas las propiedades
(usualmente estáticas), además de los
valores actuales d...
Programación II
Objeto - Estado
• Determina cómo son los nodos en un
diagrama de transición de estados del
objeto.
• Nota...
Programación II
Objeto - Identidad
• Distingue a un objeto del resto.
• Es independiente del estado.
• Se conserva durant...
Programación II
Objeto - Identidad
• Es una propiedad muy importante para
las Bases de Datos Orientadas a Objetos
(OODB)....
Programación II
Objeto - Comportamiento
• Indica la forma como el objeto actúa y
reacciona en término de los cambios de
e...
Programación II
Objeto - Comportamiento
• Nota: principios de encapsulamiento y
polimorfismo.
• Ejemplos: ObtenerValor, A...
Programación II
Objeto - Comportamiento
Método:
Procedimiento que reside en el objeto y
determinan cómo éste actuará cuan...
Programación II
Objeto - Comportamiento
Mensaje:
Canal de comunicación que usan los
objetos para ejecutar acciones. Sólo
...
Programación II
Objeto - Comportamiento
Mensajes
Atributos
Métodos
Asignar / Set
Obtener / Get
(Atributos)
Mecanismos bás...
Programación II
Objeto - Comportamiento
Mensaje = Identidad del Objeto + Método +
Parámetros
Mecanismos básicos
Fórmula c...
Programación II
Objeto - Comportamiento
Es el conjunto de mensajes a los cuales
un objeto responde o puede responder.
Nót...
Programación II
Clase
Mecanismos básicos
Programación II
Clase
• Define la estructura y el comportamiento
de una forma abstracta o concepto para
darle vida a los ...
Programación II
Clase
• Consta de dos partes: una declaración y
una implementación. La declaración lista
o identifica los...
Programación II
Clase
• Nota: principios de abstracción, jerarquía,
modularidad y tipos.
• Nota: principio de encapsulami...
Programación II
Clase - interfaz
• Determina la forma en la cual los
elementos de la clase (atributos y
métodos) pueden o...
Programación II
Clase - interfaz
• Tres niveles de interfaz:
Mecanismos básicos
Privada Visibilidad sólo para la
misma cl...
Programación II
PUBLICA
Otros usuarios externos
PROTEGIDA
Clases relacionadas
Clase - interfaz
PRIVADA
Clase actual
Mecan...
Programación II
Clase - relaciones
• Basado en el principio de jerarquía, para
la definición de una clase nueva se
pueden...
Programación II
Clase - relaciones
Para dos clases A y B:
A es una agregación de B si y sólo si
(B contiene a A)
A forma ...
Programación II
Clase – relaciones (ejemplo)
-Capacidad
-Longitud
Aeronave
-# Turbinas
-Modelo
Avión
-# Motores
-Tipo Mot...
Programación II
Herencia
Mecanismos básicos
Programación II
Herencia
• Permite crear clases nuevas a partir de
clases ya existentes, estableciendo
niveles de jerarqu...
Programación II
Herencia
• La clase nueva (jerarquía inferior) es
conocida como subclase o clase derivada
y la clase de m...
Programación II
Herencia - ejemplo
Generalización
Especialización
Mecanismos básicos
Programación II
Herencia
Clase Derivada = Clases Base +
Otros Elementos
Mecanismos básicos
Fórmula conceptual:
Programación II
Herencia
Nota: Si el identificador de un método o
atributo de una clase cualquiera es similar
a alguno de...
Programación II
Herencia
Nota: Cuando un objeto recibe un mensaje
que contiene un método que no está
definido en su clase...
Programación II
Herencia – clase abstracta
Mecanismos básicos
• Clases cuya descripción es incompleta.
• Sólo sirven para...
Programación II
Herencia – clase abstracta
Mecanismos básicos
• No es posible o no tiene sentido instanciar
objetos con e...
Programación II
Herencia – clase abstracta
Nota: Aunque pueden haber métodos
genéricos definidos en algún nivel de la
jer...
Programación II
Herencia – clase abstracta
Mecanismos básicos
Programación II
Herencia –método virtual
Mecanismos básicos
• Pertenece a una clase abstracta.
• Debe ser obligatoriament...
Programación II
Herencia –método virtual
Mecanismos básicos
• Su uso tiene implicaciones en los
espacios de memoria ocupa...
Programación II
Herencia –método virtual
Nota: Un método no virtual de una clase
base y otro similar (polimórfico) de la
...
Programación II
Herencia – interfaz
• Permite determinar qué criterio de interfaz
(público, privado ó protegido) se va a ...
Próxima SlideShare
Cargando en…5
×

Principios orientacion-objetos

4.158 visualizaciones

Publicado el

Tecnología Orientada a Objetos - UNEG - Profesor Mauricio Paletta

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
4.158
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
107
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Principios orientacion-objetos

  1. 1. Programación II Ing. Mauricio Paletta, Msc Presentación Fundamentos de la Orientación a Objetos UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA INGENIERÍA EN INFORMÁTICA Programación II
  2. 2. Programación II Fundamentos de la Orientación a Objetos ABSTRACCION TIPOS MODULARIDAD CONCURRENCIA ENCAPSULAMIEN. PERSISTENCIA JERARQUIA POLIMORFISMO PRINCIPIOS HERENCIAOBJETO CLASE ENLACE DINAMICO MECANISMOS BASICOS TERMINOS TECNICOS
  3. 3. Programación II Principios de la Orientación a Objetos Abstracción
  4. 4. Programación II Principios de la Orientación a Objetos Abstracción • Capacidad de adquirir conceptos (idea particular o lo que vemos y comprendemos del mundo), construir jerarquías de generalizaciones y componer objetos mediante la configuración de otros. • Es el acto o resultado de eliminar diferencias entre los objetos, de modo que podamos ver los aspectos comunes.
  5. 5. Programación II Principios de la Orientación a Objetos Abstracción • Es una forma de manejar la complejidad de los objetos. • Enfatizar sobre los detalles importantes y olvidar los aspectos no relevantes desde perspectiva del usuario. • Permite separar el comportamiento esencial de un objeto de su implementación.
  6. 6. Programación II Principios de la Orientación a Objetos Abstracción • Se implementa mediante la identificación de clases.
  7. 7. Programación II Encapsulamiento Principios de la Orientación a Objetos
  8. 8. Programación II • Esconder todos los detalles de un objeto que no contribuyen al entendimiento de sus características esenciales. Información escondida. • Se refiere a incluir dentro de un objeto todo lo que éste necesita y hacerlo de forma tal que ningún otro objeto vea su estructura interna. Principios de la Orientación a Objetos Encapsulamiento
  9. 9. Programación II • Permite realizar cambios a los programas con poco esfuerzo. • La idea principal es proteger los datos de un objeto del uso arbitrario. • Se implementa mediante la interfaz de los elementos que definen una clase. Principios de la Orientación a Objetos Encapsulamiento
  10. 10. Programación II Modularidad Principios de la Orientación a Objetos
  11. 11. Programación II • Descomponer un sistema en un conjunto de unidades discretas. • Está asociado al concepto de programación modular / estructurada. • Permite empaquetar la abstracción en pequeñas unidades. • Está íntimamente relacionado con el encapsulamiento. Principios de la Orientación a Objetos Modularidad
  12. 12. Programación II • Los módulos son generalmente unidades indivisibles. • 5 criterios, 5 reglas y 5 principios. • Se implementa mediante la instanciación de objetos, la identificación de relaciones entre clases y cómo éstas, en conjunto, resuelven el problema tratado. Principios de la Orientación a Objetos Modularidad
  13. 13. Programación II Criterio 1 - Descomposición modular: Descomponer el problema de software en un pequeño número de sub-problemas menos complejos, interconectados mediante una estructura sencilla y suficientemente independien- tes para permitir que el trabajo futuro pueda proseguir por separado en cada una de ellos. Ejemplo: diseño top-down Contraejemplo: inicialización global Principios de la Orientación a Objetos Modularidad
  14. 14. Programación II Criterio 2 - Composición modular: Favorece la producción de elementos que se pueden combinar libremente unos con otros para producir nuevos sistemas, posiblemente en un entorno bastante diferente de aquél en que fueron desarrollados inicialmente. Ejemplo: biblioteca de subprogramas Contraejemplo: uso de preprocesadores Principios de la Orientación a Objetos Modularidad
  15. 15. Programación II Criterio 3 - Comprensibilidad modular: Ayuda a producir software en el cual un lector humano puede entender cada módulo sin tener que conocer los otros. Ejemplo: biblioteca de subprogramas de índole específico Contraejemplo: dependencias secuenciales Principios de la Orientación a Objetos Modularidad
  16. 16. Programación II Criterio 4 - Continuidad modular: Un pequeño cambio en la especificación de un problema provoca sólo cambios en un solo módulo o en un pequeño número de módulos. Ejemplo: constantes simbólicas Contraejemplo: estructuras estáticas Principios de la Orientación a Objetos Modularidad
  17. 17. Programación II Criterio 5 - Protección modular: Produce arquitecturas en las cuales el efecto de una situación anormal que se da dentro de un módulo durante su ejecución, queda confinado a dicho módulo o en el peor caso, se propaga sólo a unos módulos vecinos. Ejemplo: verificación de los datos de entrada en su origen Contraejemplo: excepciones indisciplinadas Principios de la Orientación a Objetos Modularidad
  18. 18. Programación II Regla 1 – Correspondencia directa: La estructura modular obtenida en el proceso de construcción de software debe seguir siendo compatible con cualquier otra estructura modular obtenida en el proceso de modelado del dominio del problema. Principios de la Orientación a Objetos Modularidad
  19. 19. Programación II Regla 2 – Pocas interfaces: Cada módulo debe comunicarse con el menor número de módulos posible. Principios de la Orientación a Objetos Modularidad
  20. 20. Programación II Principios de la Orientación a Objetos Modularidad Regla 3 – Pequeñas interfaces: Si dos módulos se comunican deben intercambiar la menor información posible.
  21. 21. Programación II Principios de la Orientación a Objetos Modularidad Regla 4 – Interfaces explícitas: Siempre que dos módulos A y B se comuniquen, esto debe ser obvio a partir del contexto de A, de B o de ambos.
  22. 22. Programación II Principios de la Orientación a Objetos Modularidad Regla 5 – Ocultamiento de información: Cada módulo debe tener seleccionada un subconjunto de propiedades como información oficial del módulo para ponerla a disposición de otros módulos.
  23. 23. Programación II Principios de la Orientación a Objetos Modularidad Principio 1 – Unidades modulares lingüísticas: Los módulos deben corresponderse con las unidades sintácticas en el lenguaje utilizado.
  24. 24. Programación II Principios de la Orientación a Objetos Modularidad Principio 2 – Auto-documentación: Toda la información relativa a un módulo debe formar parte del mismo módulo.
  25. 25. Programación II Principios de la Orientación a Objetos Modularidad Principio 3 – Acceso uniforme: Todos los servicios ofrecidos por un módulo deben estar disponibles a través de una notificación uniforme sin importar la forma como están implementados.
  26. 26. Programación II Principios de la Orientación a Objetos Modularidad Principio 4 – Abierto / Cerrado: Los módulos deben ser a la vez abiertos y cerrados. Abierto disponible para ser extendido. Cerrado disponible para ser usado por otros módulos.
  27. 27. Programación II Principios de la Orientación a Objetos Modularidad Principio 5 – Elección única: Siempre que un sistema de software deba admitir un conjunto de alternativas, habrá un módulo del sistema (y sólo uno) que conozca su lista completa.
  28. 28. Programación II Jerarquía Principios de la Orientación a Objetos
  29. 29. Programación II Jerarquía • Es el acto o resultado de distinguir un concepto que es más general que otro. • Permite examinar si los conceptos tienen algo en común. • Nos ayuda a percibir que todas las instancias de un concepto más específico son también instancias de un concepto general. Principios de la Orientación a Objetos
  30. 30. Programación II Jerarquía • Permite empaquetar la abstracción en pequeñas unidades. • Representa la organización de una abstracción. • Su uso simplifica el entendimiento del problema. • Se implementa mediante las relaciones de herencia y agregación entre clases. Principios de la Orientación a Objetos
  31. 31. Programación II Tipos Principios de la Orientación a Objetos
  32. 32. Programación II Tipos • Permite agrupar o formar un conjunto de objetos con características o comportamientos similares. • Dos cosas que tienen la misma forma abstracta son análogas => son del mismo tipo. Principios de la Orientación a Objetos
  33. 33. Programación II Tipos • Se implementa mediante la descripción o identificación de los elementos que describen una clase: datos / información atributos operaciones / comportamiento métodos Principios de la Orientación a Objetos
  34. 34. Programación II Concurrencia Principios de la Orientación a Objetos
  35. 35. Programación II Concurrencia • Es la propiedad que distingue un objeto activo de uno que no lo es. • Permite a diferentes objetos actuar al mismo tiempo; cada uno de ellos tiene autonomía. Principios de la Orientación a Objetos
  36. 36. Programación II Concurrencia • Se implementa mediante el proceso de creación o instanciación de objetos a partir de su clase y las propiedades de identidad y estado de los objetos: clase definición / tipología del concepto objeto instancia / ocurrencia cualquiera del concepto Principios de la Orientación a Objetos
  37. 37. Programación II Persistencia Principios de la Orientación a Objetos
  38. 38. Programación II Persistencia • Es la propiedad que un objeto tiene de existir en el tiempo y en el espacio. • Un objeto existe hasta que no sea más necesitado y el espacio que ocupa es reutilizado. Principios de la Orientación a Objetos
  39. 39. Programación II Persistencia • Tanto la necesidad de espacio para almacenar el objeto como su recupera- ción, involucran a los dependientes (objetos relacionados) de dicho objeto. • Se implementa mediante los procesos de construcción y destrucción de los objetos definidos como parte del comportamiento de la clase. Principios de la Orientación a Objetos
  40. 40. Programación II Polimorfismo Principios de la Orientación a Objetos
  41. 41. Programación II • Es el fenómeno mediante el cual una operación adopta varias formas de implementación. • Habilidad para usar el mismo símbolo para propósitos diferentes cuando el contexto es claro. Principios de la Orientación a Objetos Polimorfismo
  42. 42. Programación II • Para el usuario, la visión del operador es una sola, el objeto se encarga de decidir qué hacer; los detalles de implementación quedan ocultos. • Dos operaciones completamente diferentes comparten el mismo nombre. Principios de la Orientación a Objetos Polimorfismo
  43. 43. Programación II • Ventajas: extensibilidad, código compacto, claridad. • Se implementa mediante la sobrecarga de funciones y operadores. Principios de la Orientación a Objetos Polimorfismo
  44. 44. Programación II Una abstracción simple sirve Coacción como diferentes tipos mediante una conversión de tipos implícita • Específico Un identificador simple denota Sobrecarga muchas abstracciones Por parámetro Una abstracción opera uniforme- mente a través de diferentes tipos • Universal Por inclusión Una abstracción opera a través de una relación de inclusión Principios de la Orientación a Objetos Polimorfismo
  45. 45. Programación II Enlace Dinámico Términos Técnicos
  46. 46. Programación II • Enlace: conectar una llamada de función al cuerpo de la función; enlace estático o temprano: se lleva a cabo antes de que el programa se ejecute; enlace dinámico posterior: ocurre en tiempo de ejecución. • Representa uno de los mayores avances de la Orientación a Objetos y es una propiedad común (no necesaria) de los lenguajes orientados a objetos. Términos Técnicos Enlace Dinámico
  47. 47. Programación II • Es un elemento necesario para poder realizar el polimorfismo. • Para su implementación, debe existir un mecanismo que determine el tipo de objeto en tiempo de ejecución y haga la llamada a la función apropiada. Términos Técnicos Enlace Dinámico
  48. 48. Programación II enlace estático enlace dinámico vs Términos Técnicos Enlace Dinámico
  49. 49. Programación II Objeto Mecanismos básicos
  50. 50. Programación II • Son las unidades básicas de construcción, para conceptualización, diseño o programación. • Son instancias organizadas en clases con características comunes. Mecanismos básicos Objeto
  51. 51. Programación II • Desde la perspectiva de un programa, los objetos son módulos que contienen datos (atributos) y las instrucciones u operaciones (métodos) que operan sobre esos datos y trabajan juntos para proveer funcionalidad. Mecanismos básicos Objeto
  52. 52. Programación II • La habilidad para reconocer objetos es una herramienta que los humanos aprenden desde muy temprana edad. • 3 características: estado, identidad y comportamiento. Mecanismos básicos Objeto
  53. 53. Programación II Fórmula conceptual: Objeto = Atributos + Métodos Mecanismos básicos Objeto
  54. 54. Programación II Mecanismos básicos Objeto Atributo Método Mensaje Módulo / Paquete
  55. 55. Programación II Objeto - Estado • Contiene todas las propiedades (usualmente estáticas), además de los valores actuales de estas propiedades (usualmente dinámicas). • Hace que cada objeto sea único. • La respuesta que un objeto puede dar, luego de la llamada de un mensaje, depende de su estado actual. Mecanismos básicos
  56. 56. Programación II Objeto - Estado • Determina cómo son los nodos en un diagrama de transición de estados del objeto. • Nota: principio de persistencia. • Ejemplos: color – rojo; peso – 75.4; edad – 24; número de ítems – 190; profesión – “Arquitecto”. Mecanismos básicos
  57. 57. Programación II Objeto - Identidad • Distingue a un objeto del resto. • Es independiente del estado. • Se conserva durante toda la vida del objeto, aún cuando se realicen cambios de estado. • Es la base para construir / armar un mensaje hacia el objeto correspondiente. Mecanismos básicos
  58. 58. Programación II Objeto - Identidad • Es una propiedad muy importante para las Bases de Datos Orientadas a Objetos (OODB). • Nota: principio de concurrencia. • Ejemplos: X1, X2, MiVentana, MauricioPaletta. Mecanismos básicos
  59. 59. Programación II Objeto - Comportamiento • Indica la forma como el objeto actúa y reacciona en término de los cambios de estado. • Está totalmente definido por sus acciones u operaciones. • 2 conceptos importantes: método y mensaje. Mecanismos básicos
  60. 60. Programación II Objeto - Comportamiento • Nota: principios de encapsulamiento y polimorfismo. • Ejemplos: ObtenerValor, AsignarValor, Agregar, Quitar, Sumar. Mecanismos básicos
  61. 61. Programación II Objeto - Comportamiento Método: Procedimiento que reside en el objeto y determinan cómo éste actuará cuando reciba un mensaje. Su ejecución puede cambiar el estado del objeto, crear objetos nuevos, enviar mensajes a otros objetos, etc. Mecanismos básicos
  62. 62. Programación II Objeto - Comportamiento Mensaje: Canal de comunicación que usan los objetos para ejecutar acciones. Sólo cuando se recibe un mensaje, el objeto ejecuta una acción. Todo proceso es activado por mensajes entre objetos. Mecanismos básicos
  63. 63. Programación II Objeto - Comportamiento Mensajes Atributos Métodos Asignar / Set Obtener / Get (Atributos) Mecanismos básicos
  64. 64. Programación II Objeto - Comportamiento Mensaje = Identidad del Objeto + Método + Parámetros Mecanismos básicos Fórmula conceptual:
  65. 65. Programación II Objeto - Comportamiento Es el conjunto de mensajes a los cuales un objeto responde o puede responder. Nótese que no necesariamente es igual al conjunto de métodos del objeto (encapsulamiento y polimorfismo). Mecanismos básicos Protocolo del Objeto:
  66. 66. Programación II Clase Mecanismos básicos
  67. 67. Programación II Clase • Define la estructura y el comportamiento de una forma abstracta o concepto para darle vida a los objetos. • Es un patrón (plantilla) que define los atributos y métodos a ser incluidos es un tipo particular de objeto. • Se dice que un objeto es una instancia particular de una clase. Mecanismos básicos
  68. 68. Programación II Clase • Consta de dos partes: una declaración y una implementación. La declaración lista o identifica los miembros de la clase (atributos y métodos). La implementación define el cuerpo de los métodos de la clase. Mecanismos básicos
  69. 69. Programación II Clase • Nota: principios de abstracción, jerarquía, modularidad y tipos. • Nota: principio de encapsulamiento – interfaz de la clase. Mecanismos básicos
  70. 70. Programación II Clase - interfaz • Determina la forma en la cual los elementos de la clase (atributos y métodos) pueden o no ser usados (son visibles) por cada uno de los tres tipos diferentes de usuarios: · Elementos de la misma clase. · Elementos de clases relacionadas (herencia). · Otros elementos externos. Mecanismos básicos
  71. 71. Programación II Clase - interfaz • Tres niveles de interfaz: Mecanismos básicos Privada Visibilidad sólo para la misma clase Protegida Visibilidad para la misma clase y clases relacionadas Pública Visibilidad para cualquiera
  72. 72. Programación II PUBLICA Otros usuarios externos PROTEGIDA Clases relacionadas Clase - interfaz PRIVADA Clase actual Mecanismos básicos
  73. 73. Programación II Clase - relaciones • Basado en el principio de jerarquía, para la definición de una clase nueva se pueden usar clases existentes, ya sea incorporando un objeto como atributo de la clase (agregación) o estableciendo una generalización (herencia). Mecanismos básicos
  74. 74. Programación II Clase - relaciones Para dos clases A y B: A es una agregación de B si y sólo si (B contiene a A) A forma parte de B A hereda de B si y sólo si (B es una generalización de A) A es un caso particular de B Mecanismos básicos
  75. 75. Programación II Clase – relaciones (ejemplo) -Capacidad -Longitud Aeronave -# Turbinas -Modelo Avión -# Motores -Tipo Motor -Autonomía Avioneta -Diámetro Hélice -Tipo Motor Helicóptero Aeropuerto Torre -Número Puerta -Número -Estado Plataforma -Número -Estado Hangar -Número -Tipo Pista 1 1 1 1..* 11..* 1 1..* 1 1..* * -Comunica con 1 1..* -Embarque / Desembarque 1 1..* -Aterriza / Despega 1..* 1..* -Usa 1..* 1..* -Aterriza / Despega 1..* 1..* -Aterriza / Despega 1..* Mecanismos básicos
  76. 76. Programación II Herencia Mecanismos básicos
  77. 77. Programación II Herencia • Permite crear clases nuevas a partir de clases ya existentes, estableciendo niveles de jerarquía y programando sólo las diferencias. • Permite refinar las estructuras sin necesidad de duplicar información. Mecanismos básicos
  78. 78. Programación II Herencia • La clase nueva (jerarquía inferior) es conocida como subclase o clase derivada y la clase de mayor nivel se denomina superclase o clase base. • Según el número de clases base, puede ser de dos tipos: simple (una sola clase base) y múltiple (mas de una clase base). Mecanismos básicos
  79. 79. Programación II Herencia - ejemplo Generalización Especialización Mecanismos básicos
  80. 80. Programación II Herencia Clase Derivada = Clases Base + Otros Elementos Mecanismos básicos Fórmula conceptual:
  81. 81. Programación II Herencia Nota: Si el identificador de un método o atributo de una clase cualquiera es similar a alguno de los elementos de una posible clase base, cualquier referencia a este identificador estará asociado al elemento de la clase derivada, a menos que se indique lo contrario. Mecanismos básicos
  82. 82. Programación II Herencia Nota: Cuando un objeto recibe un mensaje que contiene un método que no está definido en su clase, se busca automáticamente hacia arriba en su jerarquía de clases. Igual ocurre al acceder a un atributo del objeto. Mecanismos básicos
  83. 83. Programación II Herencia – clase abstracta Mecanismos básicos • Clases cuya descripción es incompleta. • Sólo sirven para ser usadas como clases bases en una relación de herencia. • En términos de diseño, son útiles para permitir a un usuario refinar o particularizar un concepto.
  84. 84. Programación II Herencia – clase abstracta Mecanismos básicos • No es posible o no tiene sentido instanciar objetos con ellas. • Por lo general contienen uno o más métodos virtuales.
  85. 85. Programación II Herencia – clase abstracta Nota: Aunque pueden haber métodos genéricos definidos en algún nivel de la jerarquía de clases, no está prohibido que existan definiciones específicas o detalladas en los niveles inferiores. En este caso, ambos métodos pueden ser usados (como si fuera un polimorfismo), siempre y cuando no se trate de la redefinición de un método virtual. Mecanismos básicos
  86. 86. Programación II Herencia – clase abstracta Mecanismos básicos
  87. 87. Programación II Herencia –método virtual Mecanismos básicos • Pertenece a una clase abstracta. • Debe ser obligatoriamente redefinido en las clases derivadas. • Puede verse como una indicación a los usuarios de la clase base, que parte del trabajo a realizar en la clase derivada, es definir estos métodos a fin de que se complete el comportamiento del concepto.
  88. 88. Programación II Herencia –método virtual Mecanismos básicos • Su uso tiene implicaciones en los espacios de memoria ocupados por los objetos instanciados.
  89. 89. Programación II Herencia –método virtual Nota: Un método no virtual de una clase base y otro similar (polimórfico) de la clase derivada ocupan ambos espacios de memoria independientes. En un método virtual sólo se tiene el espacio de memoria ocupado por la redefinición en la clase derivada. Mecanismos básicos
  90. 90. Programación II Herencia – interfaz • Permite determinar qué criterio de interfaz (público, privado ó protegido) se va a usar para los usuarios de la clase derivada con los elementos públicos de la clase base. Mecanismos básicos

×