CICLO: II-2019 Miércoles 7:00 am a 9.30 am Licenciatura En Ciencias De La Computación MATERIA: Programación Orientada A Objeto (POO) 1 DOCENTE: Lic. Jorge Alberto Coto Zelaya EMAIL: [email protected] UNIDAD II Y INTRODUCCIÓN UNIDAD III Conceptos de POO Y Lenguaje Unificado de Modelado (UML) 2 CONCEPTO DE POO: ▪ La programación orientada a objetos o POO (OOP según sus siglas en inglés) Es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas. Además es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programacion. 3 4 CONCEPTO DE POO: ❖CLASE: Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Es una descripción de datos y operaciones que describen el comportamiento de cierto tipo de elementos. Por lo tanto, para que pueda haber objetos, antes deben haberse definido las clases a las que pertenecerán dichos objetos. No tiene sentido un objeto sin una clase, ya que el objeto tiene los atributos de la clase a la que pertenece, y recibe mensajes correspondientes a métodos de la clase a la que pertenece. ▪ Una clase es como un tipo de dato creado por el usuario, que posee dos categorías de miembros: ➢ Atributos (Datos) Estado ➢ Métodos (Algoritmos) Comportamiento ❖En general, es posible crear una clase a partir de cualquier objeto que esté a nuestro alrededor. Por ejemplo: ➢ Persona ➢ Automóvil ➢ Mascota 5 ❖Una clase se divide en una parte pública y en una parte privada. El nombre de la clase debe ser único. ▪ Parte pública Describe a qué operaciones responden los objetos de una clase (cómo se comportan los objetos). En esta parte de la clase se declaran las cabeceras de los métodos de la clase que podrán ser "invocados" por los objetos. Es decir, si un método se declara en la parte pública, podrá ser "invocado" por un objeto de dicha clase, de lo contrario no podrá ser "invocado" por un objeto. Es la parte "visible" de la clase, la interfaz de la clase. ▪ Parte privada Describe los datos de la clase y cómo las operaciones manipulan dichos datos. Esta parte de la clase es donde se oculta (encapsula) la información de la clase: datos e implementación de métodos declarados o no en la parte pública de la clase. Es una parte "no visible", cada objeto de una determinada clase tiene sus atributos (datos) y sus métodos. 6 ▪ OBJETO: Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase. ❑ Los objetos son entidades que tratamos en nuestra vida diaria y el centro de la POO. ❑ Se pueden definir como la representación de un objeto del mundo real en un entorno de programación ❑ Es muy fácil identificar en los objetos del mundo real sus características principales, es decir las propie dades que los hacen diferentes entre si, o las acciones que puede realizar. ❑ Es precisamente esta la labor que se debe realizar en la POO, identificar las características y acciones de los objetos que formaran la aplicación. 7 ▪ OBJETO: Componentes de un objeto: atributos, identidad, relaciones y métodos. Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes. En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto. Un objeto (compuesto por atributos y métodos) es la instancia de una clase. - El señor Pérez es un objeto de la clase Persona. Un objeto es simplemente una colección de información relacionada con cierta funcionalidad. Un objeto puede ser: - algo que tenga una manifestación o correspondencia en el mundo real (tal como un objeto empleado), - algo que tenga algún significado virtual (tal como una ventana en la pantalla), o - alguna abstracción adecuada dentro de un programa (una lista de trabajos a realizar) 8 ❖Herencia: ▪ La herencia es un mecanismo exigido a cualquier lenguaje que pretenda ser orientado a objetos. Consideraremos la herencia como la transmisión de los métodos y atributos de una clase a otra. Gracias a la herencia se pueden establecer jerarquías entre clases. Establecer una jerarquía es un proceso subjetivo, que depende del programador y de los matices de apreciación de cada uno. ▪ (por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO. ▪ La herencia nos permite definir una jerarquía en la que existirán clases padre y clases hijo, pudiéndo ser una clase padre de otra clase, e hijo de otra clase a la vez. No deben definirse jerarquías de herencia en la que una clase sea padre e hijo de la misma clase. Existen 2 tipos de herencia: La herencia simple y la herencia múltiple. En la herencia simple una clase sólo puede tener una clase padre, en la herencia múltiple, una clase puede tener más de una clase padre. Por 9 ejemplo: 10 ❖METODO: ▪ Representan todas aquellas acciones que se pueden realizar sobre un objeto de cierta clase ▪ En la implementación, estos métodos son segmentos de código en la forma de funciones ▪ La clase Vehículo puede incluir los métodos: ➢ Encender ➢ Acelerar ➢ Virar ➢ Frenar 11 ❖METODO: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema. 12 ❖ EVENTO: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera. ▪ ATRIBUTOS: características que tiene la clase. ▪ Son los datos que caracterizan a los objetos de una clase y determinan el estado de un objeto ➢ Marca ➢ Año ➢ Color ➢ Patente, etc. ▪ 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. ▪ 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ó. ▪ ESTADO INTERNO: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase. 13 INVESTIGACION INDIVIDUAL 1. 2. 3. 4. 5. 6. POLIMORFISMO ENCAPSULAMIENTO ABSTRACCIÓN PRINCIPIO DE OCULTACIÓN RECOLECCIÓN DE BASURA MODULARIDAD 14 15