UAM Introducción a la Tecnología Orientada a Objetos Manuel Alfonseca Roberto Moriyón UAM 7/10/03 1 Distintas formas de programar ➤ Programación clásica, procedimental ➤ Programas jerárquicos ➤ Datos no organizados ➤ Programación ➤ Programas lógica y datos no organizados ➤ Programación orientada a objetos ➤ Datos (objetos) jerárquicos ➤ Programas no organizados UAM 7/10/03 7/10/03 2 1 UAM La importancia de las palabras (Frege) ➤ El lucero de la mañana es Venus ➤ Venus es un planeta ➤ Un planeta es un astro UAM ➤ “lucero de la mañana” = “Venus” ➤ “Venus”∈“planeta” ➤ “planeta”⊂”astro” 7/10/03 3 La importancia de las palabras “El coche tiene color rojo y se mueve” ➤ Nombres: Objetos y Propiedades de éstos ➤ Verbos: Comportamiento de los objetos ➤ Adjetivos: Valores de las propiedades UAM 7/10/03 7/10/03 4 2 UAM Pasos hacia la Orientación a Objetos ➤ (Según Peter Wegner, Universidad de Brown, 1987) ➤ Object-Based ➤ Objetos (APL,Ada, Modula-2) ➤ Class-Based ➤ Clases (SEDL, Clu) ➤ Object-Oriented ➤ Herencia ➤ (Smalltalk, C++, JAVA) UAM 7/10/03 5 Paradigmas de la Programación Orientada a Objetos ➤ Clase-Elemento ➤ Ninguna clase es objeto ➤ C++ ➤ Toda clase es objeto ➤ Smalltalk ➤ Prototipo-Elemento ➤ Todo objeto puede ser prototipo de otros ➤ OOPI, UAM 7/10/03 Amulet 7/10/03 6 3 UAM Tecnología Orientada a Objetos ➤ O.O.T.: Tecnología Orientada a Objetos ➤ O.O.A.: Análisis Orientado a Objetos ➤ O.O.D.: Diseño Orientado a Objetos ➤ O.O.P.: Programación Orientada a Objetos UAM 7/10/03 7 Elementos de la Programación Orientada a Objetos ➤ OBJETOS ➤ CLASES ➤ HERENCIA ➤ ENCAPSULAMIENTO ➤ POLIMORFISMO ➤ MENSAJES UAM 7/10/03 7/10/03 8 4 UAM Objeto Propiedades Métodos Valores Código Punteros Relaciones UAM 7/10/03 9 Ejemplo de jerarquía Abuelos, padres e hijos UAM 7/10/03 7/10/03 10 5 UAM Ejemplo de jerarquía Agregación o Composición UAM 7/10/03 11 Ejemplo de jerarquía Vehículo Automóvil Opel Seat Generalización UAM 7/10/03 7/10/03 12 6 UAM Herencia ➤ De métodos ➤ De propiedades ➤ De valores ➤ Simple ➤ Múltiple UAM 7/10/03 13 Mensajes OBJETO OBJETO Método (parámetros) UAM 7/10/03 7/10/03 14 7 UAM Ventajas de la Programación Orientada a Objetos ➤ Modelos naturales ➤ Modularidad ➤ Extensibilidad ➤ Eliminación de redundancias ➤ Reutilización UAM 7/10/03 15 Modelos naturales UAM 7/10/03 ➤ Modelo mental basado en NOMBRES ➤ Modelo tradicional basado en VERBOS ➤ Modelo OO basado en NOMBRES 7/10/03 16 8 UAM Modularidad ➤ Los objetos son módulos naturales ➤ Encapsulamiento ➤ Ocultamiento aisla datos/programas de la información UAM 7/10/03 17 Extensibilidad ➤ Es fácil añadir ➤ Objetos nuevos ➤ Clases nuevas ➤ Propiedades nuevas ➤ Conductas nuevas ➤ Programación UAM 7/10/03 incremental 7/10/03 18 9 UAM Eliminación de redundancias ➤ Las propiedades comunes a muchos objetos ➤ se definen en un antepasado común ➤ se heredan del antepasado ➤ Una propiedad o un método debe definirse una sola vez UAM 7/10/03 19 Reutilización ➤ Las clases (antepasados comunes a muchos objetos) pueden volverse a utilizar en aplicaciones diferentes. ➤ Un sistema comercial de OOP debe ir acompañado de bibliotecas de clases y métodos. ➤ Las bibliotecas pueden ser independientes. UAM 7/10/03 7/10/03 20 10 UAM Framework ➤ Conjunto de clases que se coordinan para realizar una función. ➤ Para construir una aplicación hay que subclasificarlas. ➤ main usualmente incluido en el Framework. UAM 7/10/03 21 7/10/03 22 Framework UAM 7/10/03 11 UAM Parte o componente ➤ Clase de uso general cuya funcionalidad se puede reutilizar UAM 7/10/03 7/10/03 23 12