UNIDAD 4: PROGRAMACIÓN ORIENTADA A OBJETOS

Slides:



Advertisements
Presentaciones similares
Unidad 3 Lenguajes .Net y POO
Advertisements

Curso de java básico (scjp)
TECNICATURA UNIVERSITARIA EN INFORMATICA
Curso de Java Capitulo 7: Continuación Poo Profesor:
PROGRAMACION ORIENTADA A OBJETOS
Lenguaje de programación Java
CASO DE ESTUDIO. El software HogarSeguro le permite al propietario de la casa configurar el sistema de seguridad una vez que este se instala, controla.
Programación Orientada a Objetos
Introducción a la Orientación a Objetos
Programación Orientada a Objetos (P.O.O.)
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
La Programación Orientado a Objetos
Tipo de Dato Abstracto Tipos de datos:
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
PROGRAMACION ORIENTADA A OBJETOS
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
PROGRAMACION ORIENTADA
METODOLOGIA DE LA PROGRAMACION
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
PROGRAMACIÓN ORIENTADA A OBJETOS
Fundamentos de Programación
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Introducción a la programación Orientada a objetos
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Introducción a los tipos de datos abstractos
Fundamentos de Programación
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
Fundamentos de programación
Programación Orientada a Objetos
Programación Orientada Objetos
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
PROGRAMACION OOP Ing. Miguel Jaime IBM ACE Certificación.
Programación Orientada a Objetos (P.O.O.)
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Facultad de Ingeniería
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Programación orientada a objetos (OPP)
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Acceso a Datos Erick López Ovando Licenciado en Informática.
Programación Orientada a Objetos: CLASES Y OBJETOS
La Programación Orientado a Objetos
Fundamentos de Ingeniería de Software
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Modelado UML Diagrama de Clases
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Transcripción de la presentación:

UNIDAD 4: PROGRAMACIÓN ORIENTADA A OBJETOS 21/10/2014 Lcdo. Luis Peña Procesamiento de Datos

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Porqué es importante? Un objeto encapsula tanto datos como los procesos que se aplican a esos datos. Esta importante característica permite construir clases de objetos e inherentemente construir bibliotecas de objetos y clases reutilizables.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Programación orientada a objetos Soporte sintáctico explícito para la abstracción de datos Cambia el punto de vista: los programas son apéndices de los datos Aparece un nuevo concepto: objeto Objeto = tipo abstracto de datos con estado (atributos) y comportamiento (operaciones) propios. Aparece el concepto de jerarquía de tipos, y con él: Herencia de estructura y funcionalidad Polivalencia de los tipos Polimorfismo Sintaxis del lenguaje: Definición de clases Funciones explícitamente asociadas a clases Creación de objetos Acceso a atributos, invocación de métodos Objeto

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) La P.O.O. es un paradigma de programación que se fundamenta en los conceptos de objeto y clase. Objeto: Una entidad autónoma con una funcionalidad concreta y bien definida. Un objeto es una unidad de código compuesto de variables y métodos relacionados. Clase: Especificación o definición de las características y comportamiento de un conjunto de objetos. Un objeto es una instancia de una clase. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Todo objeto del mundo real tiene 2 componentes: Características Comportamiento. Cuando a las características del objeto le ponemos valores decimos que el objeto tiene estados. Las variables almacenan los estados de un objeto en un determinado momento.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Ejemplo de clase con sus atributos y métodos class Vector { private: double x; double y; public: Vector (double u1, double u2) { x = u1; y = u2; } double modulo () { return sqrt (x*x + y*y); }; //Fin de la Clase void main () { Vector u (4, -2); cout << u.modulo (); }//Fin del main

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) EJEMPLO En resumen una clase es una descripción generalizada que describe una colección de objetos similares. Por definición, todos los objetos que existen dentro de una clase heredan sus atributos y las operaciones disponibles para la manipulación de los atributos. Una superclase es una colección de clases y una subclase es una instancia de una clase.   Estas definiciones implican la existencia de una jerarquía de clases en la cual los atributos y operaciones de la superclase son heredados por subclases que pueden añadir, cada una de ellas atributos y métodos

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Ejemplo de Jerarquía para la clase Mobiliario

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Conceptos fundamentales Propiedad o atributo: Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método. Un atributo puede tomar un valor definido por un dominio enumerado. Es decir un conjunto de valores especificados. Las características (valores de dominio) pueden aumentarse asignando un valor por defecto aun atributo. Componentes de un objeto: Atributos, identidad, relaciones y métodos. Representación de un objeto: Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.  

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Conceptos fundamentales   Operaciones, Métodos y Servicios: Un objeto encapsula datos (representados como una colección de atributos) y los algoritmos que procesan esos datos. Estos algoritmos son llamados operaciones, métodos o servicios. Mensaje: Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Los mensajes son el medio a través del cual interactúan los objetos. Un mensaje se genera de la forma: destino.operacion(parametros)

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Ventajas de la Programación orientada a objetos: Ventajas de la abstracción de datos + disciplina de programación Reutilización de código, mantenimiento y extensión de las aplicaciones ya que las estructuras de datos están mezcladas en una entidad sencilla: la clase. (Encapsulamiento) Desarrollo e integración de software orientado a componentes Potencia del lenguaje: herencia, polimorfismo  

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Ciclo de vida de los objetos Creación Reserva de memoria: Empleado x = crear Empleado (···) Inicialización de atributos: constructores Un objeto se puede instanciar de una forma simple, declarando una variable del tipo de la clase. void ejemplo (TObject *Sender) { nombre_clase ObjGraf1(); }

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Manipulación Acceso a atributos: x.nombre Invocación de métodos: x.salario_neto ( ) Destrucción Liberar la memoria Destruir partes internas, si las hay Eliminar referencias al objeto destruido (p.e. jefe) Destrucción de objetos  Cuando un objeto deja de ser útil hay que eliminarlo. De esta manera la aplicación recupera los recursos (memoria) que ese objeto había acaparado cuando se creó. La destrucción de objetos creados en tiempo de ejecución con new se realiza mediante el operador delete. Ejemplo: void ~ nombre_clase (TObject *Sender)

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Constructores y Destructores (Inicialización de Clases) Son métodos que permiten establecer el estado inicial y final de un objeto. Los constructores se pueden definir con un conjunto de argumentos arbitrario, pero no pueden devolver nada. Y los destructores no pueden recibir ni devolver ningún valor. El constructor debe llamarse igual que la clase, y el destructor el nombre de la clase precedido del carácter ~ Un constructor se ejecuta cuando se crea un nuevo objeto: por declaración, ó cuando se crea dinámicamente con el operador new. Un destructor se ejecuta cuando el objeto deja de existir: porque su ámbito acaba, ó cuando se libera explícitamente con el operador delete. TObjGraf :: TObjGraf (TColor _Color, int _X, int _Y){ Color = _Color; X = _X; Y = _Y; }   ObjGraf = new TObjGraf (clRed, 10, 10);

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Pilares de la POO.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Abstracción: Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Pero ¿qué es realmente la abstracción? Básicamente es la capacidad de separar los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Existen tres características de los sistemas orientados a objetos que los hacen únicos. LA HERENCIA es una de las diferencias clave entre los sistemas convencionales y sistemas OO. La herencia es la propiedad que permite a los objetos construirse a partir de otros objetos. La herencia impone una relación jerárquica entre clases en la cual una clase hija hereda de su clase padre. Si una clase sólo puede recibir características de otra clase base, la herencia se denomina herencia simple. Si una clase recibe propiedades de más de una clase base, la herencia se denomina herencia múltiple

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Herencia de Estructura

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Encapsulamiento: Se dice que es el empaquetado de métodos y atributos dentro de un objeto, mediante una interfaz de mensajes. La clave está precisamente en el envoltorio del objeto. En un objeto podemos distinguir dos aspectos bien diferenciados: Estado -----------> Propiedades Comportamiento ---> Métodos En P.O.O. los datos y los procedimientos que los gestionan están relacionados explícitamente y se "encapsulan" en un objeto. La especificación de las propiedades de un objeto y los métodos de acceso se realiza en la declaración de la clase de la que se instancia el objeto. Propiedades y métodos de los objetos de una clase TObjGraf.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c POLIMORFISMO: Es una característica que reduce en gran medida el esfuerzo necesario para extender un sistema OO. Para entender el polimorfismo, consideremos una aplicación convencional que debe dibujar 4 tipos diferentes de gráficos: gráficos de línea, gráficos de tarta, histogramas etc. Para realizar esto en una aplicación convencional sería necesario desarrollar módulos de dibujo para cada tipo de grafico, por ejemplo: Case of tipo_grafico: If (tipo_grafico = grafico_linea) then DibujarLinea(datos); If (tipo_grafico = grafico_tarta) then DibujarTarta(datos); If (tipo_grafico = grafico_histograma) then DibujarHistograma(datos); End case;

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Para resolver esto cada uno de los gráficos se convierte en una subclase de una clase general llamada Gráfico. Una subclase define una operación llamada Dibujar. Quedando de la sig manera: Tipo_grafico dibujar. En resumen el polimorfismo permite que un número de operaciones diferentes tengan el mismo nombre. Esto reduce el acoplamiento entre objetos, haciendo a cada uno más independiente.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Sistema de Seguridad Hogar Seguro El software Hogar seguro le permite al propietario de la casa configurar el sistema de seguridad una vez que este se instala, controla todos los sensores conectados al sistema de seguridad, e interactúa con el propietario a través de un teclado numérico y teclas de función contenidas en el panel de control de Hogar Seguro. Durante la instalación, el panel de control Hogar Seguro se usa para "programar" y configurar el sistema. A cada sensor se le asigna un numero y tipo, se programa una contraseña maestra para activar y desactivar el sistema, y se introducen números de teléfonos a marcar cuando un sensor detecte un suceso. Cuando se reconoce un suceso de sensor, el software involucra una alarma audible asociada al sistema. Después de un tiempo de espera especificado por el propietario durante las actividades de configuración al sistema, el software marca un número de teléfono de un servicio de control, proporciona información acerca de la localización, e informa de la naturaleza del suceso detectado.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Sensor Panel de control Sistema de seguridad Suceso de sensor Alarma audible Información de sensor: tipo de sensor + numero de sensor + umbral de alarma. Información de respuesta de la alarma: tiempo de retardo + numero de teléfono + tipo de alarma. Información de activación / desactivación: contraseña maestra + cantidad de intentos permitidos + contraseña temporal. Información de identificación: ID del sistema + verificación de numero de teléfono + estado del sistema

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Sistema ID del sistema Numero de teléfono de verificación Estado del sistema Tabla de sensores Tipo de sensor Numero de sensor Umbral de alarma Contraseña maestra Numero de intentos Programar() Mostrar() Reiniciar() Consultar() Modificar Llamar() Algunas de las operaciones pueden determinarse a partir de comunicación semejantes entre objetos. Por ejemplo, el Suceso sensor enviara un mensaje a Sistema para mostrar en pantalla la localización y numero del suceso; el panel de control enviara un mensaje de reinicialización para actualizar el estado del sistema entre otros.

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO) Se requiere un programa que utilice la clase para un “Usuario” con dos atributos: LoginCorrecto y PasswordCorrecto y un método: Validar(login, pass) : bool, que se encargará de comparar los parámetros suministrados con los valores correctos. El valor de retorno será “true” si son iguales y “false” si son diferentes. class Usuario { Private: string loginCorrecto; string passwordCorrecto; Public: bool Validar(string log, string pass) { if (log == loginCorrecto && pass == passwordCorrecto) { return true; } else { return false; }//Fin else }//Fin de Validar }//Fin de la clase

UNIDAD 4. PROGRAMACION ORIENTADA A OBJETOS (POO)c Se desea desarrollar un sistema para una concesionaria de vehículos. Los vehículos se clasifican en: autos, camionetas y motocicletas. Todos los vehículos tienen un código, una marca, tipo (auto, camioneta, etc.), un modelo (año), una patente y un kilometraje. Además, la concesionaria lleva un registro de las ventas realizadas, cada registro consiste de la siguiente información: monto de la venta, vehículo vendido (código), apellido, nombre y cedula del comprador.