Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Objetivos de la Clase 8 (02/10/2013) 1. Fecha de exámenes: 17/10,30/10,06/11,20/11,28/11,05/12 2. Programación Orientada a Objetos (POO) Desarrollo de los temas de la presente Clase Bibliografia Cap. 15 de Fundamentos de Programación (Joyanes Aguilar) Programación Orientada a Objetos (POO) Conceptos fundamentales de orientación a objetos ¿Qué es programación orientada a objetos? o Método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones de herencia 1- Utiliza objetos, no algoritmos, como bloques de construcción lógica. 2 – cada objeto es una instancia de una clase 3 – clases se relacionan unas con otras mediante relaciones de herencia Sin estos 3 elementos no es un programa orientado a objetos o La potencia de los objetos reside en que los objetos pueden definir otros objetos mediante la herencia o Se pueden construir programas que se modifican fácilmente y se adaptan a aplicaciones diferentes. o Los Conceptos fundamentales de programación son: Objetos Clases Herencia Mensajes Polimorfismo o El Objeto En una sola unidad datos y funciones que operan sobre esos datos Funciones dentro de un objeto [funciones miembro o métodos] único medio de acceder a los datos privados de un objeto Se lee un elemento y se devuelve un valor No se puede acceder directamente a los datos Los datos y las funciones están encapsulados Encapsulación y ocultamiento de datos son términos importantes en LOO 1 Ver figura 15.1 o Ejemplos de objetos Objetos físicos: aviones, autos Elementos de interfaces graficas de PC Animales Alimentos Atributos describen estado del objeto Los objetos encapsulan datos y las funciones que manejan esos datos Figura 15.2 y 15.3 Atributos: datos que caracterizan el estado del objeto Métodos: acciones que cambian el estado del objeto Los objetos tienen una interfaz publica y una representación privada que permite ocultar la información al exterior Figura 15.4 o Métodos y mensajes Programa orientado a objetos consiste en un número de objetos que se comunican unos con otros llamando a funciones miembro. funciones miembro residen en el objeto y determinan como actúan los objetos cuando reciben un mensaje mensaje acción que hace un objeto método se invoca para actuar sobre un objeto y especifica como se ejecuta un mensaje el conjunto de mensajes a los que puede responder un objeto se denomina protocolo del objeto Figura 15.5 Concepto de caja negra, la estructura interna de un objeto esta oculta a los usuarios Mensajes son los únicos conductos que conectan el objeto con el mundo externo Cuando ejecutamos programa OO ocurren 3 sucesos: Objetos se crean a medida que se necesitan Mensajes se mueven de un objeto a otro o desde el usuario al objeto, programa procesa información internamente o responde a entrada del usuario Cuando objetos no necesarios se borran y liberan memoria o Clases Descripción de un conjunto de objetos Métodos y datos que resumen características comunes de conj. de objetos 2 Se pueden definir muchos objetos de la misma clase Clase es la declaración de un tipo objeto, son similares a tipos de datos Modelos o plantillas que describen como se construyen ciertos tipos de objetos Cuando se construye un objetos estamos creando una instancia de esa clase Una instancia es una variable de tipo objeto un objeto es una instancia de una clase. Los objetos son miembros de una clase los objetos se crean cuando un mensaje de petición de creación se recibe por la clase clase colección de objetos similares ejemplo clase cantante_latino o nuevo documento en procesador de texto Un mundo de objetos o Posibilidad de reflejar sucesos del mundo real mediante tipos abstractos de datos extensible a objetos o Ejemplo vehiculo -> bicicleta, auto, avión; cosas en común y otra no Vehiculo es un tipo base y bicicleta un tipo derivado de ella tipo base representa comportamiento y características comunes a los tipos derivados de este tipo base o definición de objetos abstracción de cosas del mundo real estado -> atributos comportamiento -> métodos invocados por mensajes son tipos abstractos de datos ->tipos que encapsulan datos y funciones que operan sobre los datos numero racional: Est. -> valor actual Operaciones -> sumar, restar, etc. Vehiculo Est. -> velocidad, precio, etc. Operaciones -> frenar, acelerar, etc. o identificación de objetos 1er. Problema identificar los objetos análisis gramatical somero del enunciado y localizar nombres o cláusulas nominales, de aquí deduciremos los objetos reales categorías de objetos 3 cosas tangibles roles organizaciones incidentes interacciones especificaciones lugares una vez identificados los objetos hay que identificar atributos y operaciones que actúan sobre ellos (ejemplo) atributos -> describen abstracción de características individuales que poseen todos los objetos operaciones -> cambian el estado del objeto, de tres tipos que manipulan datos que realizan calculo o proceso que comprueban o monitorizan para identificar operaciones nuevo análisis gramatical y buscar los verbos del texto o Representación grafica Figura 15.7 y 15.8 o Diferencia entre objeto y clase Objeto es un simple elemento Clase describe una familia de elementos similares, plantilla que se utiliza para definir o crear objetos Características objetos Se agrupan en clases Tienen datos internos que definen su estado Soportan ocultación de datos Pueden heredar propiedades de otros objetos Pueden comunicarse con otros pasando mensajes Tienen métodos que definen su comportamiento Son instancias de una clase Una clase puede tener muchas instancias y cada una es un objeto independiente Una clase es un plantilla para describir un objeto de un mismo tipo o Datos internos Conjunto de valores de todas las variables contenidas dentro del objeto en un instante dado Variables de estado Ver ejemplo o Ocultación de datos 4 Usuario no necesita saber como se implementa la ventana sino como se utiliza Comunicaciones entre objetos: los mensajes o Orden que se envía a un objeto para indicarle que realice alguna acción o Se denomina paso de mensajes o Objetos se comunican entre si mandando mensajes o Mensajes tienen una contrapartida denominada métodos o Métodos son los procedimientos que se invocan cuando un objeto recibe un mensaje o En programación tradicional es un llamado a una función o Ver ejemplo o No le decimos a la ventana como cambiar, la ventana maneja la operación por si misma o Ejemplo de ventana de Windows al pulsar botón de Exit o Mensajes Petición de un objeto a otro solicitándole que ejecute uno de sus métodos Objeto envía petición -> emisor Objeto recibe petición -> receptor Partes del mensaje Identidad del receptor Método a ejecutar Información especial para ejecutar el método (argumentos o parámetros) Al recibir un mensaje un objeto que esta inactivo se transforma en activo Petición no especifica como se realiza la operación Conj. de mensajes a los que responde un objeto se denomina comportamiento del objeto Ver ejemplo Mensaje incluye nombre de una operación y cualquier argumento requerido por esa operación o Métodos Emisor envía mensaje Receptor ejecuta el método apropiado, consumiendo los parámetros, devuelve algún tipo de respuesta al emisor para reconocer mensaje y devolver información solicitada o Paso de mensajes Especificaciones emisor Un receptor Nombre de mensaje Argumentos o parámetros Ejemplo 15.1 Estructura interna de un objeto 5 o Atributos y métodos Figura 15.14 y 15.15 o Atributos Describe estado del objeto Consta de nombre atrib. y valor actual atrib. o Métodos Describen el comportamiento asociado a un objeto Ejecución conduce a un cambio de estado del objeto Tiene un nombre y un cuerpo que realiza la acción Se activa por un mensaje que se envía por otro objeto al objeto que contiene el método Figura 15.16 y ejemplo Clases o Definen los tipos abstractos de datos en lenguajes de programación OO o Comparación con tablas de datos Una clase se puede considerar como la extensión de una tabla Pueden asociarse clase e instancias con tabla y registros respectivamente Una tabla define los nombres y los tipos de datos de la información que contenga Una instancia, un registro de esa tabla proporciona los valores específicos para una entrada particular Diferencia conceptual: clases contienen métodos además de la definición de datos Ver ejemplo o Dos operaciones comunes en cualquier clase Constructor Destructor Se definen como métodos de la clase Herencia o Propiedad que permite a los objetos ser construidos a partir de otros objetos o Capacidad de un objeto para utilizar las estructuras de datos y los métodos previstos en antepasados o ascendientes o Objetivo final reutilizar código anteriormente ya desarrollado o Clases básicas o fundamentales se dividen en subclases Animales en mamíferos, insectos, etc. Vehículos en automóvil, bicicleta, etc. Tienen características comunes y diferentes 6 Herencia supone una clase base y una jerarquía de clases que contienen las clases derivadas de la clase base. Clases derivadas puede heredar el código y los datos de su clase base, añadiendo su propio código y datos a ellas e incluso cambiar elementos de la clase base que necesita que sean diferentes Una clase hereda sus características de otra clase Figura 15.19 Las jerarquías de clases se organizan en forma de árbol Figura 15.20 Ver pseudo código o Herencia simple (jerárquica) Cada clase tiene como máximo una sola superclase Figura 15.22 o Herencia múltiple (en malla) Cada clase puede tener una o mas superclases inmediatas Cada clase puede heredar métodos y variables de cualquier número de superclases. Figura 15.23 Al heredar C de A y D esta acción puede producir un conflicto de nombres Problemas por herencia múltiple Caso 1 no hay problema Caso 2 ver problema en Figura 15.24 Reglas de resolución de conflictos Sobrecarga o Mismo nombre de Operación para representar operaciones similares que se comportan de modo diferente cuando se aplican a clases diferentes o Figura 15.28 Polimorfismo REVISIÓN DEL CAPÍTULO o Conceptos clave o Resumen Direcciones de Contacto vbasictl@yahoo.com.ar http://ar.groups.yahoo.com/group/tlyso_01 7 <?php Class Persona { public $nombre; public $edad; public function mostrarDatos($x) { echo "Nombre: " . $nombre . "<br />"; echo "Edad: " . $edad . "<br />"; } } //instancia del objeto $obj = new Persona(); $obj->nombre = "Perez"; $obj->edad = 24; $obj->mostrarDatos(); ?> Muestra Nombre: Perez Edad: 24 ********************************************************** <?php Class Persona { var $nombre; var $edad; public function __construct($n, $e) { $this->nombre = $n; $this->edad = $e; } public function __destruct() { 8 echo "Objeto destruido!"; } public function mostrarDatos() { echo "Nombre: " . $this->nombre . "<br />"; echo "Edad: " . $this->edad . "<br />"; } } //instancia del objeto // llama al constructor que inicializa los atributos $obj = new Persona("Lopez", 27); $obj->mostrarDatos(); unset($obj); //llama al destructor ?> Muestra Nombre: Lopez Edad: 27 ********************************************************** <?php Class Persona { var $nombre = "pp"; var $edad = 20; public function mostrarDatos() { echo "Nombre: " . $this->nombre . "<br />"; echo "Edad: " . $this->edad . "<br />"; } } //creo clase Alumno que hereda de Persona Class Alumno extends Persona{ var $curso; public function mostrarDatos() { echo "Nombre: " . $this->nombre . "<br />"; echo "Edad: " . $this->edad . "<br />"; echo "Curso: " . $this->curso . "<br />"; } 9 } //instancio Persona $p = new Persona(); $p->nombre = "Perez"; $p->edad = 30; $p->mostrarDatos(); //instancio Alumno $a = new Alumno(); //$a->nombre = "Lopez"; //$a->edad = 27; $a->curso = "PHP"; $a->mostrarDatos(); ?> Muestra Nombre: Perez Edad: 30 Nombre: Lopez Edad: 27 ********************************************************** Preguntas Segundo Parcial Teórico Clase 8 Clase 8 1. Definición de programación orientada a objetos. Que elementos deben existir en POO. Definir y explicar que son objetos, métodos y mensajes (punto 15.1, 15.1.1, 15.1.2, 15.1.3 libro Joyanes Aguilar) 2. Como es la estructura interna de un objeto, atributos y métodos (punto 15.4, 15.4.1, 15.4.2 libro Joyanes Aguilar) 3. Que son las clases. Cuales son sus propósitos principales. Diferencia con objeto. Comparación con tablas de datos. Que es un constructor y un destructor (punto 15.5, 15.5.1 libro Joyanes Aguilar) 4. Que es la herencia. Cual es su objetivo final. Jerarquía de clases. Jerarquía de herencia. (punto 15.6 libro Joyanes Aguilar) 10 Objetivos de la Clase 8 (02/10/2013) Bibliografia Cap. 15 de Fundamentos de Programación (Joyanes Aguilar)
Compartir