Está en la página 1de 12

Introduccin a la Orientacin a

Objetos
Jose Jesus Garca Rueda
(Adaptado de Object-Oriented Information
Systems, de David Taylor)

Una nueva aproximacin a la


construccin de software
zLa tecnologa de objetos se basa en la
reutilizacin de software.
zTres son sus mecanismos clave:
{Objetos.
{Mensajes.
{Clases.

1
Construir el software como el hardware

zEl objetivo es obtener el mismo xito que


el mundo del desarrollo hardware.
zLos ordenadores estn construidos en
capas de elementos discretos
interconectados.
zEl software orientado a objetos tambin se
construir por conexin de elementos
discretos en capas.

Beneficios de la tecnologa 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 ms
fcil de modificar y mantener.
4. La tecnologa de objetos facilita la
adaptacin al entorno y el cambio.

2
Los sistemas complejos en la naturaleza

zEn la naturaleza encontramos sistemas


extremadamente complejos que
funcionan.
zPodremos conseguir esto mismo con los
sistemas artificiales si imitamos los
mecanismos de la naturaleza?
zTres son los principios bsicos que
subyacen en todo sistema vivo.

1. Bloques de construccin vivos


z Todo ser vivo est
formado por clulas.
z Dos puntos
interesantes:
{La clula est envuelta
por una membrana que
la encapsula.
{La clula contiene
mecanismos para
gestionar tanto la
informacin como el
Membrana Ncleo Citoplasma comportamiento.

3
2. Interaccin entre clulas
z Las clulas interaccionan a travs de mensajes.

Mensaje
qumico

La membrana acepta o rechaza el mensaje


La clula responde internamente
z Este tipo de interaccin tiene importantes ventajas:
{ Protege el interior de cada clula de la intrusin de otras.
{ Evita a las clulas tener que conocer los mecanismos internos
de las dems (ocultacin)

3. Especializacin de las clulas


z Cada clula se especializa en una tarea
determinada, formando jerarquas.

Clula

Muscular Sangunea Nerviosa

Glbulo Glbulo
Estriada Lisa Bipolar Piramidal
blanco rojo

4
Las tres claves de la Tecnologa de
Objetos
Clula Objeto Mensaje
Mensaje

Clula

Muscular Sangunea Nerviosa

GlbuloGlbulo
Estriada Lisa BipolarPiramidal
blanco rojo

Clase Clase

Objetos

zLos objetos sern la base de todo el


software Orientado a Objetos.
Mtodos zEl objeto protege
el acceso a sus
variables: los
objetos slo
pueden accederse
Variables a travs de sus
(atributos)
mtodos.

5
Un ejemplo de objeto

Fofito
D
ba ime

e
no ime
br
# Dime nombre la
nc

m
D
nombre e
direccin
balance
Di rec
m ci
di

e n

zOcultacin: si cambio algo dentro del


objeto, no tengo que modificar nada fuera.
zPodra incluso eliminar variables

Construir objetos a partir de objetos


z Un objeto puede contener a otro objetos.
z En la mayor parte de los sistemas, en realidad
no los contiene, sino que los referencia (apunta)

z Ventajas de referenciar:
{ El objeto contenido puede
Var 1: * cambiar de tamao y
Var 2: * composicin sin que eso
afecte al contenedor.
{ Los objetos contenidos
pueden pertenecer a varios
objetos a la vez.

6
Ejemplo de objetos compuestos
Peticin de compra Peticin de compra

Cliente: * Cliente: *
Producto: * Producto: *

Producto Cliente Producto

Modularizacin por niveles


z Los objetos se pueden anidar cuantas veces
z Ventajas:
deseemos. {Cada nivel puede
z Esto permite crear estructuras
entenderse de forma jerrquicas de
independiente.
objetos, similares a las de la naturaleza.
{Lo mismo con cada
componente de cada nivel.
rgano
Sistema
{Facilita la realizacin de Clula
Organismo cambios en el rgano
Sistema sistema. Clula
(chimpanc) (circulatorio) (corazn) (muscular)

Sistema rgano Clula

7
Mensajes
z A travs de mensajes los objetos solicitan servicios a
otros objetos.
z Un mensaje tiene tres partes: identidad del receptor,
mtodo solicitado e informacin necesaria para el
mtodo (parmetros)
z Secuencia de actuacin: el emisor enva el mensaje, el
receptor ejecuta el mtodo apropiado, el receptor
devuelve una respuesta.

aade

listaNum aade 1400

receptor parmetro
mtodo listaNum

Ventajas de los mensajes

zLos mismos que en la naturaleza:


{Los objetos no acceden a las interioridades
de los dems.
{Los objetos no necesitan conocer las
interioridades de los dems.
zEsta encapsulacin facilita la modificacin
de los objetos.

8
El poder del polimorfismo
z Se puede usar el mismo nombre para muchos mtodos.
z Esto simplifica la escritura de programas, permite que se
ejecuten ms rpidamente y facilita mucho la
modificacin.
almacn
aade
= aade una caja

listaNum
aade
= aade un nmero

departamento
aade
= aade un empleado

Clases

zPonen orden en los objetos.


Cdigo de los mtodos
zNo todos
Clase los lenguajes orientados a
___
Definicin de variables
objetos las tienen.
___

zUn clase es como una plantilla para


objetos similares:
{Definen
12 los aspectos
16 8 de los objetos
Valores para comunes a
todas9las instancias
3 7de la clase.
las variables

zTODO OBJETO
Instancias ES UNA INSTANCIA DE
UNA CLASE

9
Cuando las clases actan como
instancias
z Las clases pueden contener variables de clase (frente a las
variables de instancia)

Variables de clase:
7
Tienen un valor en la clase

12 16 8 No aparecen en las
9 3 7 instancias

z Puede ocurrir lo mismo con los mtodos. Ej: constructores y


destructores.

Especializacin de clases
z Cada clase se define como un caso especial de otra,
generndose una jerarqua de clases.

Producto

Vdeo Audio Fotografa

Receptores MP3 CD Amplificadores

z Ventaja: las clases pueden compartir propiedades.


{ Se elimina la redundancia.
{ Se facilita la modificacin del software.

10
Herencia mltiple
z Cuando cada clase tiene una nica superclase de la que
hereda, tenemos herencia sencilla.
z Si se permite que las clases hereden de tantas
superclases como se desee, tenemos herencia mltiple.

A B

C D E

La naturalidad de las jerarquas de clases

zLas jerarquas de clases reflejan nuestra


forma natural de entender:
{Generalizacin.
{Discriminacin (especializacin)
zPodemos trasladar fcilmente nuestro
conocimiento del mundo real a un sistema
orientado a objetos.

11
Conclusiones

z La Orientacin a Objetos es el paradigma actual


para la creacin de software.
z Se basa en la descomposicin del programa en
elementos discretos y blindados (objetos), que
colaboran entre s envindose mensajes.
z Los objetos son instancias (ejemplos) de una
clase (plantilla)
z La Orientacin a Objetos posee una serie de
propiedades que aportan importantes ventajas.

12

También podría gustarte