Introducción a la Programación
Orientada a Objetos Renny Batista
John Johnson
"Primero resuelve el problema. Entonces, escribe el código”
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)
¿Qué es la Orientación a Objetos?
La orientación a objetos es un
paradigma de la
programación
mmm… este..?
El problema está en que tanto lo
podemos comprender…
La orientación a objetos
es una forma de ver
las cosas…
Una forma de entender un problema identificando las principales entidades
que se encuentran en él
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.
El lenguaje de programación es solo una
herramienta para resolver el problema…
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
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.
¿Qué es un
objeto?
Veamos algunos
conceptos básicos
un objeto es…
¡Cualquier cosa!
¿Es en serio?
Cualquier cosa…
Cualquier cosa…
Cualquier cosa de la que puedas emitir un
concepto
Es decir…
todo es un objeto
¿Conoces este objeto? ¿Cuáles son sus características?
Por ejemplo…
Puedes notar que con sólo ver
la imagen automáticamente
reconoces que es un teléfono.
Éste es un objeto
preconcebido por ti.
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
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
A ese concepto conocido que representa una
agrupación de objetos lo denominamos
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
El molde (la Clase) no determina por ejemplo,
que sabor tiene cada una de las galletas…
…tampoco por cuanta cantidad de ingredientes estará compuesta
La Clase es una…
los objetos son todos los que podamos crear a partir de dicha clase
Realicemos un ejercicio…
el concepto que elegiremos es la clase Persona
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
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
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
¿Se entiende mejor?
Una clase está compuesta
por características (Atributos o Propiedades) y
por comportamientos (Acciones y Métodos)
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.
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
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ó
Los objetos tienen diferentes tipos de
relaciones
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…”
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”
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)
Los principios que dirigen orientación a objetos
…la modularidad y la
reusabilidad
La modularidad significa trabajar por partes,
dividiendo un problema complejo en varios
problemas más simples
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
Con relación a la comunicación tenemos los siguientes principios…
Alta cohesión y el
bajo acoplamiento
¿Sabes de que se trata?
Cuando decimos que un
componente tiene una alta cohesión hablamos de que
todos los elementos dentro
de él están estrechamente relacionados
Cuando decimos que un
componente tiene bajo acoplamiento hablamos del
nivel de independencia
que tiene un componente con
respecto a los otros
Características de la Orientación a Objetos
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.
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.
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.
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.
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.