La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación Orientada a Objetos Unidad I – Programación Orientada a Objetos en C++ Programación I - 0416202.

Presentaciones similares


Presentación del tema: "Programación Orientada a Objetos Unidad I – Programación Orientada a Objetos en C++ Programación I - 0416202."— Transcripción de la presentación:

1 Programación Orientada a Objetos Unidad I – Programación Orientada a Objetos en C++ Programación I - 0416202

2 Programación Orientada a Objetos Contenido Esta lección abarca los siguientes temas: Paradigmas de Programación Programación Orientada a Objetos (POO) Clase Objeto Atributos Métodos Mensajes Pilares Fundamentales de la POO:  Abstracción  Encapsulamiento  Herencia  Polimorfismo

3 Programación Orientada a Objetos Paradigmas de Programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. Paradigmas de Programación Imperativa Programación Estructurada Programación Orientada a Objetos Declarativa Programación Funcional Programación Lógica

4 Programación Orientada a Objetos Programación Declarativa Los programas describen el resultado a obtener y los mecanismos disponibles, pero no detallan los pasos necesarios para obtenerlo. Programación Funcional: Emplea expresiones funcionales para combinar valores básicos y obtener resultado. Programación Lógica: Se basa en el cálculo de predicados para obtener resultados a partir de hechos básicos y mediante la aplicación de reglas de inferencia. Paradigmas de Programación Declarativa Programación Funcional Programación Lógica

5 Programación Orientada a Objetos Programación Declarativa (Ejemplo)

6 Programación Orientada a Objetos Programación Imperativa Los programas detallan los pasos necesarios para realizar una tarea. Existe un estado global del programa que es modificado por una secuencia de órdenes o instrucciones. Programación estructurada: Los programas se particionan en múltiples tareas que encierran funciones bien definidas y limitan la visibilidad de los datos. Además, impone restricciones en el diseño de los algoritmos que facilitan su posterior modificación y mantenimiento. Programación orientada a objetos: Introduce el concepto de objeto como forma de encapsular algoritmos y datos en una unidad indivisible, con el fin de que los programas simulen el comportamiento de los objetos del mundo real. Paradigmas de Programación Imperativa Programación Estructurada Programación Orientada a Objetos

7 Programación Orientada a Objetos Programación Orientada a Objetos (POO) La Programación Orientada a Objetos es un paradigma muy poderoso que combina la descripción de los elementos en un entorno de proceso de datos con las acciones ejecutadas por esos elementos. Cuando se escribe un programa de computadora en un lenguaje orientado a objetos, se está creando un modelo de una parte del mundo. Las partes con que se construye ese modelo son los objetos que aparecen en el dominio del problema. Los objetos en el dominio del problema varían de acuerdo al programa que se escribe, por ejemplo en un Chat, los objetos sería Usuarios y Mensajes mientras que en un Juego, los objetos serían Monstruos y Personajes.

8 Programación Orientada a Objetos Programación Orientada a Objetos (POO) La POO difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. En la programación estructurada solo se escriben funciones que procesan datos. Los programadores que emplean programación orientada a objetos, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.

9 Programación Orientada a Objetos Programación Orientada a Objetos (POO) En la Programación orientada a objetos, podemos encontrarnos con los siguientes elementos:  Clases  Objetos  Métodos  Atributos  Mensajes  Abstracción  Encapsulamiento  Herencia  Polimorfismo Pilares Fundamentales De la POO POO

10 Programación Orientada a Objetos Clase Una descripción general de un grupo de objetos, cada uno de los cuales se diferencia por un estado específico y es capaz de realizar una serie de operaciones. Se puede pensar en una clase como en un molde para un objeto. A partir de la clase, se pueden crear o instanciar objetos con propiedades específicas: la instanciación crea un objeto con valores específicos para cada una de las propiedades.

11 Programación Orientada a Objetos Objeto Entidad provista de un conjunto de propiedades o datos (atributos) 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 de una clase, es decir la materialización de una clase.

12 Programación Orientada a Objetos Atributos Un atributo representa una propiedad o característica de un objeto. Los atributos y sus valores en un momento dado, determinan el estado de un objeto. Por ejemplo: Un circulo tiene una coordenada “x”, una coordenada “y”, el “color”, el “diámetro” y la “visibilidad”. Los valores que tengan los atributos del objeto determinarán la posición, color, tamaño y visibilidad del mismo (el estado del objeto círculo). Diámetro=15px Color=Azul PosX=30 PosY=10 Visible=True Diámetro=25px Color=Rojo PosX=65 PosY=8 Visible=True

13 Programación Orientada a Objetos Métodos 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. Regularmente se dice que esos métodos son “llamados” o “invocados”. Acciones Procesos Comportamiento Función Métodos Encender Cambiar Velocidad Acelerar Frenar Abrir Capot Abrir Puertas Bajar Vidrio Encender Luces Apagar

14 Programación Orientada a Objetos Mensajes Los objetos pueden enviar y recibir mensajes; es así como se comunican. Por ejemplo: un gato.  El objeto estómago del gato envía un mensaje al objeto cerebro.  El objeto estómago indica que está vacío.  El objeto cerebro envía un mensaje al objeto piernas, indicándoles que es hora de moverse.

15 Programación Orientada a Objetos Mensajes Para que un objeto haga algo, le enviamos una solicitud. Esta hace que se produzca una operación. La operación ejecuta el método apropiado que opcionalmente produce una respuesta. Entonces, un mensaje no es mas que la invocación de un método para que éste produzca un resultado. El mensaje que construye la solicitud contiene el nombre del objeto, el nombre de una operación y a veces, un grupo de parámetros.

16 Programación Orientada a Objetos Mensajes En resumen, Un mensaje es una comunicación dirigida desde un objeto A ordenando a otro objeto B que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

17 Programación Orientada a Objetos 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. Los procesos, las funciones o los métodos pueden también ser abstraídos. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

18 Programación Orientada a Objetos Abstracción Automóviles Edificios Personas Bicicletas Anuncios

19 Programación Orientada a Objetos Abstracción Para definir cada objeto hay que ser capaces de abstraer sus métodos y atributos es decir, lo que puede hacer y qué características lo distinguen de otros objetos; a esto se le conoce como abstracción funcional y abstracción de datos. Por ejemplo, ¿qué métodos y atributos tiene un automóvil? NOTA: Dependiendo del sistema a desarrollar habrá que tomar únicamente los atributos y métodos que sean de importancia en el contexto de la aplicación. Encender Cambiar Velocidad Acelerar Desacelerar Frenar Abrir Capot Abrir Puertas Bajar Vidrio Encender Luces Apagar Marca Modelo Año Numero de Puertas Color Seriales Puestos Ejes Peso Tipo de Caja

20 Programación Orientada a Objetos Encapsulamiento Pero, el encapsulamiento es mucho más que esto, ya que permite a los grandes programadores descomponer grandes sistemas, en sistemas encapsulados más pequeños que son más fáciles de desarrollar y de darles mantenimiento. Es el proceso de agrupar datos y operaciones relacionadas bajo la misma unidad de programación (objeto). Mediante el encapsulamiento se ocultan los detalles internos de implementación de la clase, dejando visible únicamente los detalles de uso de la misma (ocultamiento de información). Esto evita que el objeto colapse por la intervención indeseada de otro objeto o usuario.

21 Programación Orientada a Objetos Encapsulamiento ¿Por qué es necesario ocultar información de los objetos? Respondo con una pregunta: ¿Qué pasaría si su padre, sin tener ningún conocimiento de electrónica abre su televisor y comienza a tratar de cambiar los canales manualmente? Cuando usted se sienta a ver televisión no se preocupa del modo cómo en que éste funciona, o lo que hace internamente para cambiar de canal o aumentar el volumen. El creador del objeto ha ocultado los detalles internos del objeto, dejando visible solo los detalles de uso del mismo

22 Programación Orientada a Objetos Herencia Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. Éstas pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.

23 Programación Orientada a Objetos Polimorfismo El polimorfismo se refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía. Encender Apagar

24


Descargar ppt "Programación Orientada a Objetos Unidad I – Programación Orientada a Objetos en C++ Programación I - 0416202."

Presentaciones similares


Anuncios Google