Programación
Orientada a Objetos I
Antes de intentar aprender algo
ten presente…
simple
lo complejo, alguna vez… fue
,
entiende lo simple.
El problema está en la
no en la
técnica,
herramienta
Si no eres nuevo en esto de programar, pero aún no
entiendes la orientación a objetos…
deshazte de vicios y empieza nuevamente!
Listo?
Que es la
orientación a objetos?
La orientación a
objetos es un
paradigma de
programación
Típico!
Si bien esta definición es
correcta, el problema está, en
que tanto lo comprendemos…
A título personal…
La orientación a objetos es “simplemente”
una forma de ver las cosas, o bien …
…es una forma de entender
un problema
identificando las entidades principales que se encuentran
en el..
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…
PINCIPIOS EN QUE SE APOYA LA
TECNOLOGÍA O.O.
• Objeto como instancia de una Clase
• Métodos
• Mensajes
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
El propósito de la programación orientada a objetos
consiste en…
proporcionar 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 que producen algún efecto
sobre ellos
Con respecto a los lenguajes
podemos decir que…
de programación
cada uno usa la herramienta en que más hábil se considere,
el problema finalmente
no cambia
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
Veamos algunos
conceptos clave…
Qué es un
Objeto?
Un
Objeto es…
Cualquier Cosa
En serio!
Cualquier Cosa
Cualquier Cosa
…de la que puedas
emitir un concepto…
Es decir…
Cualquier Cosa
,
todo es un objeto
…el mundo está lleno de objetos
reales, los cuales se pueden
representar como tales en una
solución computarizada.
Veamos…
Este es un objeto
…es un
automóvil de plástico, rojo
con 4
llantas y 2 puertas
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
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
A ese concepto conocido que representa una
agrupación de objetos
…lo llamamos
Clase
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
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
mentalmente a partir de dicha clase o concepto
La clase …
… Describe un conjunto de objetos del Contexto del
Problema, que tienen las mismas características y el
mismo comportamiento
Hagamos un ejercicio, el típico…
…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
Características
Nombre: Sandra
Edad: 22
Color de Piel: Morena
Profesión: Deportista
Estado Civil: Soltera
Comportamientos





Hablar
Caminar
Mirar
Nacer
Morir
Otro
objeto de la clase persona sería
Características
Comportamientos
Nombre: Carlos
Edad: 28
Color de Piel: Blanco
Profesión: Abogado
Estado Civil: Casado





Hablar
Caminar
Mirar
Nacer
Morir
Ya vamos entendiendo…
Una clase esta compuesta por
características (atributos o propiedades)
y por comportamientos (acciones o métodos)
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.
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
interfaz
les conoce como la
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.
Los objetos se comunican con otros a
través de
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
mensajes
objetos
relaciones
Los
tienen
diferentes
tipos
de
Asociación
Agregación/Composición
Ahora veamos conceptos
avanzados
Los principios que dirigen la orientación a objetos son…
… la modularidad y la reusabilidad
Qué son?
En términos simples la modularidad
significa trabajar por partes…
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
Con respecto a la comunicación
tenemos más principios
alta cohesión y el bajo acoplamiento
… que tan claros los tenemos?….
Cuando decimos que un componente
tiene 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
Cuando decimos que un componente
tiene una bajo acoplamiento hablamos
del nivel de independencia que tiene un
componente con respecto a otros
Características de la
Orientación a Objetos
Abstracción
Quitar propiedades y acciones de un
objeto para dejar solo las necesarias
Proceso mental que tiene dos aspectos complementario
aspecto de destacar los detalles relevantes del objeto d
estudio
El aspecto de ignorar los detalles irrelevantes del objet
Encapsulamiento
no puede ser manipulado directamente desde
el exterior y su representación concreta es
invisible.
Herencia
Poseer todas las características
de la clase de la que proviene
La herencia permite modelar
Polimorfismo Es la posibilidad de
definir de forma distinta un
método, dependiendo del objeto
cada clase sabe como realizar tal operación
Beneficios de la tecnología de objetos
1. Permite desarrollar software en mucho menos tiempo y
con menos coste.
2. Se consigue aumentar la calidad de los sistemas.
3. El software orientado a objetos es más fácil de
modificar y mantener.
4. La tecnología de objetos facilita la adaptación al
entorno y el cambio.
5. Fomenta una metodología basada en componentes
6. Utiliza en el análisis y diseño
Recomendaciones finales
La POO representa un gran avance en la
programación, tal como lo fue la programación
estructurada en la década de los ‘70. Entre sus
ventajas más importante se encuentran un notable
aumento de la productividad del programador y
de la robustez de los programas
La Programación orientación a objetos
es…
… una serie de normas, de realizar las cosas
de manera que otras personas puedan
utilizarlas y adelantar su trabajo, de
manera que consigamos que el código se
pueda reutilizar
AJUSTANDO NUESTRO VOCABULARIO
A lo que antes llamábamos tipo, refiriéndonos a estructuras
de datos, ahora lo llamamos clase, entendiendo como tal no
sólo las estructuras, sino también el comportamiento
asociado (las acciones y funciones asociadas directamente
con la estructura de datos).
A lo que antes llamábamos variable ahora lo llamamos
objeto. Así como las variables son de determinado tipo, los
objetos son de determinada clase.
Los procedimientos y funciones definidos dentro de una
clase se llaman métodos, en tanto que los campos
se denominan atributos.
En nuestro ejemplo, podríamos decir que la clase
persona tiene los atributos nombre, apellido y edad,
y los métodos inicializar, nombre_completo y
es_mayor.
Un concepto importante: la herencia
En la POO existe la posibilidad de extender el
comportamiento de una clase, añadiendo atributos y
métodos. El mecanismo utilizado para tal fin se denomina
herencia.
Siguiendo con nuestro ejemplo, podríamos querer definir una
clase empleado. Básicamente un empleado posee todas las
características de una persona (tiene nombre y apellido, tiene
sentido preguntarse si es mayor de edad, etc.). Sin embargo,
un empleado tendrá otros atributos (por ejemplo, un salario,
un cargo) y también otros métodos (liquidar_salario, etc.). Es
por esto que bastará con definir a la clase empleado
heredando de la clase persona (en POO se usa la
expresión “un empleado es una persona“), y añadiendo el
nuevo comportamiento (métodos y atributos).
ANEXO: Un ejemplo en PHP
es un lenguaje con un sistema de tipos dinámico (una
característica que lo hace muy simple y rápido para pequeños desarrollos, pero que se vuelve un arma de doble filo en programas complejos).
<?
function inicializar($nombre, $apellido, $edad) {
$persona['nombre'] = $nombre;
$persona['apellido'] = $apellido;
$persona['edad'] = $edad;
return $persona;
}
function nombre_completo($persona) {
return $persona['nombre'] . ' ' .$persona['apellido'];
}
function es_mayor($persona) {
return $persona['edad'] >= 18;
}
$p = inicializar('Juan', 'Perez', 25);
echo nombre_completo($p);
if (es_mayor($p)) {
echo " es mayor de edad.\n";
} else {
echo " es menor de edad.\n";
}
?>
Descargar

Clase_orientacion-a