Clases poo

Click here to load reader

download Clases poo

of 73

  • date post

    25-Jun-2015
  • Category

    Technology

  • view

    1.594
  • download

    1

Embed Size (px)

description

Program

Transcript of Clases poo

  • 1. Programacin Orientada a Objetos POO 26/09/2013 1POO - AIGL

2. Unidad I: El paradigma Orientado a Objetos. 1.1 Introduccin, surgimiento y desarrollo del paradigma Orientado a Objetos 1.2 Clases y Objetos 1.3 Encapsulamiento 1.4 Herencia 1.5 Polimorfismo 1.6 Sobrecarga de Operadores y Funciones 26/09/2013 2POO - AIGL 3. Crisis del Software 26/09/2013 3POO - AIGL 4. Crisis del Software Englob a una serie de sucesos que se venan observando en los proyectos de desarrollo de software: Los proyectos no terminaban en plazo. Los proyectos no se ajustaban al presupuesto inicial. Baja calidad del software generado. Software que no cumpla las especificaciones. Cdigo inmantenible que dificultaba la gestin y evolucin del proyecto. 26/09/2013 4POO - AIGL 5. 1.1.- INTRODUCCIN, SURGIMIENTOS Y DESARROLLO DEL PARADIGMA ORIENTADO A OBJETO Lenguaje = Idioma Artificial La palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos: El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin. Qu es un paradigma de programacin? Paradigma un conjunto de teoras, estndar y mtodos que juntos representan un medio de organizacin del conocimiento: es decir un medio de visualizar el mundo. IMPERATIVA C 1972, PASCAL LOGICO PROLOG FUNCIONAL LISP ORIENTADO A OBJETO Visual NET , JAVA PARADIGMAS DE PROGRAMACION 26/09/2013 5POO - AIGL 6. EL PARADIGMA IMPERATIVO Este paradigma duro lo suficiente hasta que las compaas y empresas tuvieron una explosin de sus actividades y pasaron de ser locales a ser regionales y nacionales, aumentado su grado de complejidad y manejo de informacin, este se agudizo cuando las necesidades pasaron las fronteras de los pases y las empresas nacionales se trasformaron en compaas internacionales. Programacin Imperativa, los primeros lenguajes imperativo fueron los lenguajes de mquina 26/09/2013 6POO - AIGL 7. EL PARADIGMA LGICO Orientado a la Inteligencia Artificial La programacin lgica comprende dos paradigmas de programacin: la programacin declarativa y la programacin funcional. La programacin declarativa gira en torno al concepto de predicado, o relacin entre elementos. le_gusta_a(juan,maria). valioso(oro). Tiene(juan,libro). da(juan,libro,maria). La programacin funcional se basa en el concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms matemtico. En cambio, la lgica matemtica es la manera ms sencilla, para el intelecto humano, de expresar formalmente problemas complejos y de resolverlos mediante la aplicacin de reglas, hiptesis y teoremas. De ah que el concepto de "programacin lgica" resulte atractivo en diversos campos donde la programacin tradicional es un fracaso 26/09/2013 7POO - AIGL 8. .EL PARADIGMA LGICO Campos de Aplicacin Sistemas expertos, donde un sistema de informacin imita las recomendaciones de un experto sobre algn dominio de conocimiento. Demostracin automtica de teoremas, donde un programa genera nuevos teoremas sobre una teora existente. Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la informacin contenida en una expresin lingstica humana. 26/09/2013 8POO - AIGL 9. El paradigma Funcional Los matemticos desde hace un buen tiempo estn resolviendo problemas usando el concepto de funcin. Una funcin convierte ciertos datos en resultados Lisp el ms antiguo a mediado de los 50 Entrada Proceso Salida 26/09/2013 9POO - AIGL 10. El paradigma Funcional Los matemticos desde hace un buen tiempo estn resolviendo problemas usando el concepto de funcin. Una funcin convierte ciertos datos en resultados Lisp el ms antiguo a mediado de los 50 Entrada Proceso Salida 26/09/2013 10POO - AIGL 11. El paradigma Orientado a Objetos Podemos afirmar que el paradigma orientado a objeto reina en las metodologas actuales y pasaran varios aos para que resulte un nuevo paradigma para que la reemplace totalmente. La programacin orientada a objeto vino para quedarse y mejorar nuestras vidas. En POO, las entidades centrales son los objetos, que son tipos de datos que encapsulan con el mismo nombre estructuras de datos y las operaciones o algoritmos que manipulan esos datos. En filosofa un objeto es aquello que puede ser observado, estudiado y aprendido. El trmino objeto tiene el mismo significado que un nombre o una frase nominal. Es una persona, lugar o cosa. Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los objetos que pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos enfrentando, y con los que podemos interactuar 26/09/2013 11POO - AIGL 12. Objeto del Mundo Real Objeto: Persona Atributos: Caractersticas que lo describen (nombre, edad raza, fecha de nacimiento.) Comportamiento: el cojunto de cosas que puede hacer un objeto, matar, llorar, trabajar caminar. 26/09/2013 12POO - AIGL 13. En sntesis los objetos conocen cosas y hacen cosas Las cosas que un objeto conoce son ___________ Las cosas que hace un objetos es su ___________ Otros objetos 26/09/2013 13POO - AIGL 14. los objetos segn Shlaer, Mellor y Coad/Yourdon pueden caer dentro de las categoras: Cosas tangibles (camin, bicicleta, batera, motor, libro) Roles o papeles jugados o representados por personas (gerentes, operarios, usuarios cliente) Organizaciones o instituciones (Empresas divisin, departamento, equipo) Procesos u acciones que representan un suceso (evento) u ocurrencias, tales como llamada a un servicio, juego, accin determinada, pueden ser fsica o real. Interacciones Generalmente implican un contrato, o transaccin y relacionan dos o ms objetos del problema en cuestin Especificaciones muestran aplicaciones o plantillas de artculos, productos industriales Lugares oficinas, sala de estudio, aula, muelle de embarque. Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las operaciones sobre ellos 26/09/2013 14POO - AIGL 15. Qu clase de cosas puede ser objetos en un programa OO? La respuesta solo se limita a la imaginacin. Ejemplos tpicos: Objetos Fsicos Aviones en un sistema de trafico areo. Automviles en un sistema de control de trafico terrestre. Casas. Elementos de interfaces grficos de usuario Ventanas Mens Objetos grficos (cuadrados, tringulos, etc.) Teclado Cuadros de dialogo Ratn. Animales Vertebrados Invertebrados Pescados Tipos de datos definidos por el usuario Datos complejos Puntos de un sistema de coordenadas. Alimentos Carnes Frutas Pescados Verduras Pasteles 26/09/2013 15POO - AIGL 16. Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las operaciones sobre ellos Objeto: Empleado Atributos: Nombre Direccin Ubicacin Nombre del departamento Nivel de estudio Objeto: Pelcula Atributos: Nombre Director Genero Duracin Color 26/09/2013 16POO - AIGL 17. Dentro del contexto de un Lenguaje OO (LOO), un objeto encapsula datos y los procedimientos/funciones (mtodos) que manejan esos datos. La notacin grafica varia de una metodologa a otras. Nombre del objeto Datos Mtodos Notacin grafica Yourdon / Coad Nombre Atributos Mtodos Notacin Grafica OMT Atributos Datos o variables que caracterizan o describen el estado del objeto. Mtodos Procedimientos o acciones que cambian el estado de un objeto. Describen el comportamiento asociado a un objeto.26/09/2013 17POO - AIGL 18. Ejemplo. Coche 1 Matricula Marca Precio Ao compra Calcular_Precio_Actual 26/09/2013 18POO - AIGL 19. Las clases se organizan en las siguiente relaciones: Abstraccin Encapsulamiento Modularidad Polimorfismo Los principios bsicos orientados a objetos son: 26/09/2013 19POO - AIGL Jerarqua Los cuatro elementos (propiedades) que ayudan a definir un objeto son Objetos como instancia de una clase MensajeMtodosAtributos Herencia Agregacin Asociacin Uso 20. Las caractersticas esenciales de un objeto, sin preocuparse de las restantes caractersticas (no esenciales) Centrado en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencial de un objeto de su implementacin. Con nfasis al Qu hace? Ms al Cmo lo hace? Permite disponer de las caractersticas de un objeto. Por ejemplo para un sistemas de matrcula del objeto persona podemos obtener las caractersticas nombre, edad, direccin, estado civil, etc. si lo requerimos para el rea de biologa, dentro de sus atributos quiz tengamos, ADN, Tipo de Sangre, etc. Abstraccin 26/09/2013 20POO - AIGL 21. Modelando una fraccin, por ejemplo La fraccin ser el objeto y tendr dos propiedades, el numerador y el denominador. Luego podra tener varios mtodos como simplificarse, sumarse con otra fraccin o nmero, restarse con otra fraccin Abstraccin 26/09/2013 21POO - AIGL Fraccion Numerador Denominador Simplificar() Sumar() Restar() 22. Permite asegurar que el contenido de la informacin de un objeto est oculta al mundo exterior: El contenido del objeto A est oculto al contenido del objeto B. Conocida como la ocultacin de la informacin. La encapsulacin permite la divisin de un programa en mdulos. Estos mdulos se implementan mediante clases, de forma que una clase representa la encapsulacin de una abstraccin, en la prctica esto significa que cada clase debe tener dos partes: un interfaz y una implementacin. El interfaz de una clase captura solo su vista externa y la implementacin contiene la representacin de la abstraccin, as como los mecanismos que realizan el comportamiento deseado. Encapsulamiento 26/09/2013 22POO - AIGL 23. ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que slo se puede cambiar mediante las ope