orientacion a objetos para dummies
TRANSCRIPT
![Page 1: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/1.jpg)
Orientada a Objetos ISorey Bibiana García Zapata
Ingeniera InformáticaPolitécnico Jaime Isaza Cadavidwww.politecnicojic.edu.co
Especialista en Desarrollo de SoftwareUniversidad EAFITwww.eafit.edu.co
Programación
![Page 2: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/2.jpg)
Antes de intentar aprender algo ten presente…
lo complejo, alguna vez… fue simple,
entiende lo simple.
![Page 3: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/3.jpg)
El problema está en la técnica,
no en la herramienta
![Page 4: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/4.jpg)
Si no eres nuevo en esto de programar, pero aún no entiendes la orientación a objetos…
deshazte de vicios y empieza nuevamente!
![Page 5: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/5.jpg)
Listo?
![Page 6: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/6.jpg)
Que es la
orientación a objetos?
![Page 7: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/7.jpg)
La orientación a objetos es un paradigma de programación
![Page 8: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/8.jpg)
Típico!
Si bien esta definición es correcta, el problema está, en
que tanto lo comprendemos…
![Page 9: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/9.jpg)
A título personal…
La orientación a objetos es “simplemente”
una forma de ver las cosas, o bien …
![Page 10: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/10.jpg)
…es una forma de entender un problema identificando las entidades principales que se encuentran
en el..
![Page 11: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/11.jpg)
La programación orientada a objetos (POO) es por tanto
una forma de desarrollar un sistema, pensando en las entidades principales del
problema que dicho sistema pretende resolver…
![Page 12: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/12.jpg)
El lenguaje de programación es
la herramienta
para resolver el problema
El propósito de la POO no tiene que ver con
el lenguaje de programación
![Page 13: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/13.jpg)
El propósito de la programación orientada a objetosconsiste en…
proporcionar una solución informática identificando los
conceptos relevantes presentes en el problema
![Page 14: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/14.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 que producen algún efecto
sobre ellos
![Page 15: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/15.jpg)
Con respecto a los lenguajes de programación podemos decir que…
cada uno usa la herramienta en que más hábil se considere,
el problema finalmente no cambia
![Page 16: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/16.jpg)
De acuerdo a la situación con una u otra herramienta se nos hace
más o menos difícil
… y de acuerdo al escenario se debe elegir
una u otra herramienta de trabajo
![Page 17: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/17.jpg)
Veamos algunos
conceptos clave…
Qué es un Objeto?
![Page 18: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/18.jpg)
Cualquier Cosa
Un Objeto es…
![Page 19: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/19.jpg)
En serio!
Cualquier Cosa
![Page 20: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/20.jpg)
Cualquier Cosa…de la que puedas emitir un concepto…
![Page 21: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/21.jpg)
Cualquier Cosa,
todo es un objeto
Es decir…
![Page 22: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/22.jpg)
…el mundo está lleno de objetos
reales, los cuales se pueden
representar como tales en una
solución computarizada.
![Page 23: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/23.jpg)
Este es un objeto
…es un automóvil de plástico, rojo
con 4 llantas y 2 puertas
Veamos…
![Page 24: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/24.jpg)
Si realizáramos el proceso mental lentamente, nos daríamos cuenta de que al ver el objeto
emitimos un concepto preconcebido
es decir automóvil
![Page 25: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/25.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 ello usamos la palabra
globo
![Page 26: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/26.jpg)
A ese concepto conocido que representa una
agrupación de objetos
…lo llamamos Clase
![Page 27: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/27.jpg)
Una clase es como un molde de galletas…
… este determina la forma y características que
la galleta (el objeto) va a tener, sin ser el objeto real
![Page 28: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/28.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 29: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/29.jpg)
La clase es una…
…los objetos son todos los que podamos crear
mentalmente a partir de dicha clase o concepto
![Page 30: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/30.jpg)
Hagamos un ejercicio, el típico…
…el concepto que elegiremos es la clase
persona
![Page 31: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/31.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 32: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/32.jpg)
Un objeto de la clase persona sería
Características Nombre: Sandra Edad: 22 Color de Piel: Morena Profesión: Deportista Estado Civil: Soltera
Comportamientos Hablar Caminar Mirar Nacer Morir
![Page 33: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/33.jpg)
Otro objeto de la clase persona sería
Características Nombre: Carlos Edad: 28 Color de Piel: Blanco Profesión: Abogado Estado Civil: Casado
Comportamientos Hablar Caminar Mirar Nacer Morir
![Page 34: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/34.jpg)
Ya vamos entendiendo…
Una clase esta compuesta por
características (atributos o propiedades)
y por comportamientos (acciones o métodos)
![Page 35: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/35.jpg)
Las características y comportamientos de una clase
son determinadas por el contexto del problema o escenario
Esto en programación quiere decir, que dentro de un sistema, solo
implementamos los atributos y métodos relacionados con el
ámbito del problema que estamos solucionando.
![Page 36: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/36.jpg)
Veamos algunos conceptos adicionales…
A los valores que tienen los atributos de un
objeto se les conoce como el estado del
objeto, y a los atributos y métodos que ofrece se
les conoce como la interfaz al código usado
para construir las clases se le conoce como la
implementación de la clase.
Interfaz 1. f. Inform. Conexión física y funcional entre dos aparatos o sistemas
independientes.
![Page 37: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/37.jpg)
Los objetos se comunican 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ó.
Wikipedia
![Page 38: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/38.jpg)
Los objetos tienen diferentes tipos de
relaciones
Asociación
Agregación/Composición
![Page 39: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/39.jpg)
Ahora veamos conceptos avanzados
![Page 40: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/40.jpg)
… la modularidad y la reusabilidad
Qué son?
Los principios que dirigen la orientación a objetos son…
![Page 41: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/41.jpg)
En términos simples la modularidadsignifica trabajar por partes…
![Page 42: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/42.jpg)
Y la reusabilidad significa
No se invente la rueda!
Lo que ya esta hecho es para usarse y algunas de las cosas que no están hechas, deben
construirse pensando en que alguien necesitará usarlo alguna vez
![Page 43: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/43.jpg)
Con respecto a la comunicación tenemos más principios
alta cohesión y el bajo acoplamiento
… que tan claros los tenemos?….
![Page 44: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/44.jpg)
Cuando decimos que un componentetiene una alta cohesión hablamos de
que todos los elementos dentro de el
están estrechamente relacionados… el criterio de relación debe ser de negocio o técnico y no subjetivo
![Page 45: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/45.jpg)
Cuando decimos que un componentetiene una bajo acoplamiento hablamos del nivel de independencia que tiene un
componente con respecto a otros
![Page 46: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/46.jpg)
Características de la
Orientación a Objetos
![Page 47: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/47.jpg)
Abstracción
![Page 48: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/48.jpg)
Encapsulamiento
![Page 49: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/49.jpg)
Herencia
![Page 50: Orientacion a Objetos para Dummies](https://reader031.vdocuments.pub/reader031/viewer/2022021500/58ed8b041a28abb20b8b459b/html5/thumbnails/50.jpg)
Polimorfismo