introducción a la programación orientada objetos
DESCRIPTION
Introducción con los conceptos básicos sobre el paradigma de la programación orientada a objetos de una manera simple.TRANSCRIPT
![Page 1: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/1.jpg)
Introducción a la Programación
Orientada a Objetos Renny Batista
![Page 2: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/2.jpg)
John Johnson
"Primero resuelve el problema. Entonces, escribe el código”
![Page 3: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/3.jpg)
Algo de historia: La metodología Orientada a Objetos fue formulada por
Grady Booch en 1990.
Otros aportes a esta metodología: Coad y Yourdon en 1991
Rumbaugh 1991 (OMT: Objet Modeling Technique)
Jacobson y Rumbaugh (UML: Lenguaje de Modelado Unificado)
![Page 4: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/4.jpg)
¿Qué es la Orientación a Objetos?
![Page 5: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/5.jpg)
La orientación a objetos es un
paradigma de la
programación
![Page 6: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/6.jpg)
mmm… este..?
El problema está en que tanto lo
podemos comprender…
![Page 7: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/7.jpg)
La orientación a objetos
es una forma de ver
las cosas…
![Page 8: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/8.jpg)
Una forma de entender un problema identificando las principales entidades
que se encuentran en él
![Page 9: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/9.jpg)
La programación orientada a
objetos es una forma de desarrollar un sistema
pensando en las entidades
principales del problema que dicho sistema pretende
resolver.
![Page 10: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/10.jpg)
El lenguaje de programación es solo una
herramienta para resolver el problema…
![Page 11: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/11.jpg)
El propósito de la programación orientada a
objetos es…
facilitar una solución informática identificando los
conceptos relevantes presentes en el problema
![Page 12: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/12.jpg)
Identificar los conceptos relevantes o las entidades
involucradas en un problema significa…
reconocer las características de estos y las
acciones que realizan o bien producen algún
efecto sobre ellos.
![Page 13: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/13.jpg)
¿Qué es un
objeto?
Veamos algunos
conceptos básicos
![Page 14: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/14.jpg)
un objeto es…
¡Cualquier cosa!
![Page 15: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/15.jpg)
¿Es en serio?
![Page 16: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/16.jpg)
Cualquier cosa…
![Page 17: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/17.jpg)
Cualquier cosa…
![Page 18: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/18.jpg)
Cualquier cosa de la que puedas emitir un
concepto
![Page 19: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/19.jpg)
Es decir…
todo es un objeto
![Page 20: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/20.jpg)
¿Conoces este objeto? ¿Cuáles son sus características?
Por ejemplo…
![Page 21: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/21.jpg)
Puedes notar que con sólo ver
la imagen automáticamente
reconoces que es un teléfono.
Éste es un objeto
preconcebido por ti.
![Page 22: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/22.jpg)
agrupa una cierta cantidad de características y
comportamientos similares que nos permiten
emitir un concepto en común acerca de ellos
Un objeto como un teléfono
![Page 23: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/23.jpg)
En la imagen cada uno de los elementos que vemos es
considerado un objeto
Sin embargo de todos ellos
podemos emitir un concepto
conocido y para ellos
utilizamos la palabra Creyón o
Lápiz de Color
![Page 24: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/24.jpg)
A ese concepto conocido que representa una
agrupación de objetos lo denominamos
![Page 25: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/25.jpg)
Una Clase es como un molde para galletas. Este
determina la forma y características que la galleta
(el objeto) va a tener sin ser el objeto real
![Page 26: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/26.jpg)
El molde (la Clase) no determina por ejemplo,
que sabor tiene cada una de las galletas…
…tampoco por cuanta cantidad de ingredientes estará compuesta
![Page 27: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/27.jpg)
La Clase es una…
los objetos son todos los que podamos crear a partir de dicha clase
![Page 28: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/28.jpg)
Realicemos un ejercicio…
el concepto que elegiremos es la clase Persona
![Page 29: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/29.jpg)
Este grupo de personas tiene un conjunto de
características y comportamientos en común
Características
• Nombre
• Edad
• Color de Piel
• Profesión
• Estado Civil
Comportamientos
• Hablar
• Caminar
• Mirar
• Nacer
• Morir
![Page 30: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/30.jpg)
Un objeto de la clase Persona sería…
Comportamientos
• Hablar
• Caminar
• Mirar
• Nacer
• Morir
Características
• Nombre: Helena
• Edad: 23
• Color de Piel: Morena
• Profesión: Estudiante
• Estado Civil: Soltera
![Page 31: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/31.jpg)
Otro objeto de la clase Persona sería…
Características
• Nombre: Robert
• Edad: 47
• Color de Piel: Blanco
• Profesión: Actor
• Estado Civil: Casado
Comportamientos
• Hablar
• Caminar
• Mirar
• Nacer
• Morir
![Page 32: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/32.jpg)
¿Se entiende mejor?
Una clase está compuesta
por características (Atributos o Propiedades) y
por comportamientos (Acciones y Métodos)
![Page 33: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/33.jpg)
Las características y
comportamiento de una clase
están determinadas por el contexto
del problema o escenario.
En programación se interpreta, que dentro de un sistema, sólo
implementamos los atributos y
métodos relacionados con el
ámbito del problema que estamos solucionando.
![Page 34: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/34.jpg)
A los valores que tienen los atributos de un
objeto se les conoce como el estado del objeto, a los atributos y métodos que ofrece se
les conoce como la interfaz, al código usado para construir las clases se le denomina como la
implementación de la clase
Según el diccionario de la RAE define Interfaz: 1. f. Inform. Conexión física y funcional entre dos aparatos o sistemas independientes.
Color: Azul
Color: Verde Color: Naranja
![Page 35: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/35.jpg)
Los objetos se comunican con
otros a través de mensajes
Un mensaje es 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ó
![Page 36: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/36.jpg)
Los objetos tienen diferentes tipos de
relaciones
![Page 37: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/37.jpg)
Asociación
Se podría definir como el momento en que dos objetos
se unen para trabajar juntos y así, alcanzar una meta. Para
validar la asociación utilizamos la frase “usa un…”
![Page 38: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/38.jpg)
Agregación/Composición
Es un tipo de relación dependiente en dónde un objeto
más complejo es conformado por objetos más simples.
En esta situación utilizamos la frase “Tiene un”
![Page 39: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/39.jpg)
Herencia
Facilita la creación de objetos a partir de otros ya existentes e
implica que una subclase
(hijo) obtiene todo el
comportamiento (métodos) y eventualmente los atributos
(características) de su
superclase (padre)
![Page 40: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/40.jpg)
Los principios que dirigen orientación a objetos
…la modularidad y la
reusabilidad
![Page 41: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/41.jpg)
La modularidad significa trabajar por partes,
dividiendo un problema complejo en varios
problemas más simples
![Page 42: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/42.jpg)
La reusabilidad significa…
¡No se invente la rueda!
Lo que ya está hecho es para usarse y alguna de las cosas que no están hechas, deben construirse pensando en que
alguien necesitara usarlo alguna vez
![Page 43: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/43.jpg)
Con relación a la comunicación tenemos los siguientes principios…
Alta cohesión y el
bajo acoplamiento
¿Sabes de que se trata?
![Page 44: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/44.jpg)
Cuando decimos que un
componente tiene una alta cohesión hablamos de que
todos los elementos dentro
de él están estrechamente relacionados
![Page 45: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/45.jpg)
Cuando decimos que un
componente tiene bajo acoplamiento hablamos del
nivel de independencia
que tiene un componente con
respecto a los otros
![Page 46: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/46.jpg)
Características de la Orientación a Objetos
![Page 47: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/47.jpg)
Abstracción Consiste en captar las
características esenciales de un objeto, así como su
comportamiento; ignorando los
aspectos que no son relevantes, con el objetivo de concentrarse en
aquellos que si lo son.
![Page 48: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/48.jpg)
Encapsulamiento
Es reunir todas las características y
comportamientos que pueden considerarse
pertenecientes a una misma entidad (Clase), al
mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes de un
sistema.
![Page 49: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/49.jpg)
Herencia
Es la propiedad que permite que
los objetos sean creados a partir de otros ya existentes,
obteniendo (heredando) las
características y comportamientos similares a los ya existentes.
![Page 50: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/50.jpg)
Polimorfismo Se refiere a capacidad que tiene un objeto de
responder de múltiples formas a un mensaje en
función de la información que recibe
polimorfismo s. m. Propiedad que tienen algunos cuerpos de poder cambiar de forma sin cambiar de naturaleza o composición.
![Page 51: Introducción a la programación orientada objetos](https://reader036.vdocuments.mx/reader036/viewer/2022081404/557ae505d8b42a590b8b5230/html5/thumbnails/51.jpg)
Referencias García, S. (2008). Orientación A Objetos Para Dummies. [Presentación en línea] Disponible: http://www.slideshare.net/soreygarcia/orientacion-a-objetos-para-dummies-presentation. Wikipedia. Programación Orientada a Objetos. Disponible: http://es.wikipedia.org/wiki/Programación_orientada_a_objetos
Nota: El contenido publicado en esta presentación es utilizado sólo con
fines educativos sin ánimos de lucro y es una adaptación del trabajo
realizado por la Ing. Sorey García. Gracias por hacer público este aporte.