Programación Orientada A Objetos
Programación Orientada A Objetos
ORIENTADA A
OBJETOS
Definicin:
La programacin Orientada a Objetos es una
metodologa que basa la estructura de los programas
en torno a los objetos.
Los lenguajes de POO ofrecen medios y herramientas
para describir los objetos manipulados por un
programa. Ms que describir cada objeto
individualmente, estos lenguajes proveen una
construccin (Clase) que describe a un conjunto de
objetos que poseen las mismas propiedades.
Caractersticas de la
P.O.O:
No hay un acuerdo aceptado por todo el mundo
respecto a cules son las caractersticas que definen
la POO, pero al menos todos concuerdan en estas:
1. Abstraccin.
2. Encapsulacin.
3. Herencia.
4. Polimorfismo.
Abstraccin:
Cuando vamos a aplicar la POO, lo primero que debemos
hacer es cumplir con una vieja mxima de guerra: Divide y
Vencers. Es decir, lo que hacemos es seccionar nuestro
cdigo en grupos de cdigo ms pequeo que, al unirlos,
hacen el trabajo.
Un buen ejemplo de abstraccin es el cuerpo humano,
aunque el cuerpo es una unidad, est dividido en lo que
conocemos por sistemas (el sistema respiratorio, el sistema
linftico, cardiovascular, etc., etc.). Estos sistemas, a su vez
estn compuestos por otros ms pequeos: los rganos, y
as sucesivamente. La abstraccin nos permite dividir
nuestro programa en distintos objetos que se agrupan
para formar cosas ms complejas.
Pero qu es realmente la abstraccin? Bsicamente es la
capacidad de separar los elementos (al menos
mentalmente) para poder verlos de forma singular. Como
cuando describimos el cuerpo humano y decimos cabeza,
brazo(s), pierna(s), etc.
Encapsulacin:
Tambin conocida como ocultamiento. Cuando me
acuesto a ver televisin no me preocupo del modo
como ste funciona, o lo que hace para cambiar de
canal o aumentar el volumen. A menos que seas
experto en electrnica o tcnico en televisores, te
pasar lo mismo: no lo sabes y no te importa; slo
sabes que al presionar un botn ocurre la magia.
Un principio fundamental de la POO es la ocultacin
de la informacin, que es el proceso de ocultar
dentro de s mismo, todos los secretos de un objeto,
que no contribuyen a sus caractersticas esenciales.
Herencia:
Uno de los elementos ms interesantes de la P.O.O. La herencia
es la capacidad que tiene una clase de derivar las propiedades y
mtodos de otra.
Tratemos de explicarlo con un ejemplo:
Decimos que una gallina es un ave; esto quiere decir que las
gallinas tienen caractersticas comunes con otras aves (pico,
plumas, etc.), es decir que la gallina hereda las caractersticas
comunes de todas las aves. Pero adems, resulta que un ave es
un animal, lo que significa que tambin comparte caractersticas
comunes al caballo, el perro, el hombre y cualquier otra cosa
que pueda ser clasificada como animal.
La herencia nos permite, entre otras cosas, evitar tener que
escribir el mismo cdigo una y otra vez, puesto que al definir que
una categora (que en programacin llamaremos clase)
pertenece a otra, automticamente estamos atribuyndoles las
caractersticas generales de la primera, sin tener que definirlas de
nuevo.
Herencia:
Polimorfismo:
Quiz es uno de los pilares de la programacin OO,
ms difciles de entender. El polimorfismo se aplica en
los mtodos y se refiere a que el mismo mtodo
puede ser usado para diferentes fines segn se
necesite.
El polimorfismo es esencial para la programacin
orientada a objetos, ya que permite usar elementos
con los mismos nombres, sin importar qu tipo de
objeto est en uso en ese momento.
Polimorfismo:
EJEMPLO:
Tomemos Medios de Transportes: barco, avin y auto.
Si les enviamos el mensaje Desplzate, cada uno de
estos objetos los har a su manera.
Polimorfismo:
EJEMPLO 2:
Pensemos en las Figuras Geometricas. Todas las
Figuras Geometricas tienen como caracterstica el
poder calcular su rea. Sin embargo, cada figura
puede realizar esta operacin de forma distinta.
Conceptos Bsicos OO
OBJETO
Es una entidad (tangible o intangible) que posee caractersticas
y acciones que realiza por s solo o interactuando con otros
objetos.
Cada objeto puede ser considerado como un proveedor de
servicios utilizados por otros objetos que son sus clientes. Cada
objeto puede ser a al vez proveedor y cliente. De all que un
programa pueda ser visto como un conjunto de relaciones entre
proveedores clientes. Los servicios ofrecidos por los objetos son
de dos tipos:
1.- Los datos, que llamamos atributos.
2.- Las acciones o funciones, que llamamos mtodos.
Objeto. Caractersticas
Generales:
Un objeto se identifica por un nombre o un identificador
nico que lo diferencia de los dems. Ejemplo: el objeto
Cuenta de Ahorros nmero 12345 es diferente al objeto
Cuenta de Ahorros nmero 25789. En este caso el
identificador que los hace nicos es el nmero de la
cuenta.
Un objeto posee estados. El estado de un objeto est
determinado por los valores que poseen sus atributos en
un momento dado.
Un objeto tiene un conjunto de mtodos. El
comportamiento general de los objetos dentro de un
sistema se describe o representa mediante sus
operaciones o mtodos. Los mtodos se utilizarn para
obtener o cambiar el estado de los objetos, as como
para proporcionar un medio de comunicacin entre
objetos.
Clase
Clase
La tendencia natural del individuo es la de clasificar
los objetos segn sus caractersticas comunes (clase).
Por ejemplo, las personas que asisten a la universidad
se pueden clasificar (haciendo abstraccin) en
estudiante, docente, empleado e investigador.
La clase puede definirse como la agrupacin o
coleccin de objetos que comparten una estructura
comn y un comportamiento comn.
Es una plantilla que contiene la descripcin general
de una coleccin de objetos. Consta de atributos y
mtodos que resumen las caractersticas y el
comportamiento comunes de un conjunto de
objetos.
Clase
Todo objeto (tambin llamado instancia de una
clase), pertenece a alguna clase. Mientras un objeto
es una entidad concreta que existe en el tiempo y en
el espacio, una clase representa solo una
abstraccin.
Todos aquellos objetos que pertenecen a la misma
clase son descritos o comparten el mismo conjunto
de atributos y mtodos.
Todos los objetos de una clase tienen el mismo
formato y comportamiento, son diferentes
nicamente en los valores que contienen sus
atributos. Todos ellos responden a los mismos
mensajes.
Clase. Caractersticas
Generales
Una clase es un nivel de abstraccin alto. La clase
permite describir un conjunto de caractersticas
comunes para los objetos que representa. Ejemplo: La
clase Avin se puede utilizar para definir los atributos
(tipo de avin, distancia, altura, velocidad de crucero,
capacidad, pas de origen, etc.) y los mtodos (calcular
posicin en el vuelo, calcular velocidad de vuelo,
estimar tiempo de llegada, despegar, aterrizar, volar,
etc.) de los objetos particulares Avin que representa.
Un objeto es una instancia de una clase. Cada objeto
concreto dentro de un sistema es miembro de una clase
especfica y tiene el conjunto de atributos y mtodos
especificados en la misma
Clase. Caractersticas
Generales
Las clases se relacionan entre s mediante una
jerarqua. Entre las clases se establecen diferentes
tipos de relaciones de herencia, en las cuales la
clase hija (subclase) hereda los atributos y mtodos
de la clase padre (superclase), adems de
incorporar sus propios atributos y mtodos.
Ejemplos, Superclase: Clase Avin
Subclases de Avin: Clase Avin Comercial, Avin de
Combate, Avin de Transporte
Los nombres o identificadores de las clases deben
colocarse en singular (clase Animal, clase Carro,
clase Alumno).
Clase
Ejemplos de clases
Imaginemos un objeto del mundo real tal como un
carro. El carro tiene ciertas caractersticas: Color,
Peso, Altura, Anchura, Posicin, Marca
Tiene comportamientos (mtodos): avanzar, giro a la
izquierda, giro a la derecha, retroceder.
clase: Lavadora
Declaracin de Clases y
mtodos
private (Privada): Indica que el atributo o el
mtodo no puede ser visto y utilizado por objetos
de clases diferentes a la actual.
public (Pblica): Indica que el atributo o el mtodo
puede ser visto y utilizado por objetos de clases
diferentes a la actual.
protected (Protegida): Esta visibilidad hace
referencia a estructuras con herencia, slo es visible
por ella misma y por sus subclases.
Tipos de datos
Indican la naturaleza de los datos
Que se pasan como parmetro o que devuelven los
mtodos
De los atributos de los objetos.
Hay algunos bsicos (dependen del lenguaje de
programacin)
int
boolean
double
String
date
Taller
Mediante las clases dadas hacer el esquema de
clases correspondiente a cada una. Deben haber por
lo menos 5 atributos y mtodos con sus respectivos
tipo de datos.
Clases: Rectngulo, circulo, bicicleta, estudiante,
cliente, producto, libro, planeta, celular, persona,
cmara, avin, computador.
Propiedades, Mtodos y
Eventos de la clase:
Decamos antes que las propiedades son realmente variables dentro de la
clase, pero para poder controlar qu puede cambiar o no el usuario de la
clase, si los valores son correctos, etc. hacemos uso de unas funciones
especiales para definir propiedades: get y set.
Mensajes
Un objeto por si solo no tiene mucho significado. Ejemplo: el objeto
"bicicleta" no tiene mucho sentido si no interacta con un objeto
"persona" que pedalee.
La interaccin entre objetos se produce mediante mensajes. Los
mensajes son llamados a mtodos de un objeto en particular.
Podemos decir que el objeto persona enva el mensaje "girar a la
izquierda" al objeto bicicleta.
Los mensajes pueden contener parmetros. Por ejemplo teniendo
un mtodo en la clase bicicleta llamado "Girar" que recibe como
parmetro la direccin (derecha o izquierda).
Un mensaje esta compuesto por los siguientes tres elementos:
El objeto destino, hacia el cual el mensaje es enviado
El nombre del mtodo a llamar
Los parmetros solicitados por el mtodo
Creacin de Objetos y
Mtodos Constructores:
Cada objeto o instancia de una clase debe ser
creada explcitamente a travs de un mtodo u
operacin especial denominado Constructor. Los
atributos de un objeto toman valores iniciales dados
por el constructor. Por convencin el mtodo
constructor tiene el mismo nombre de la clase y no se
le asocia un modo de acceso (es pblico).
Algunos lenguajes proveen un mtodo constructor
por defecto para cada clase y/o permiten la
definicin de ms de un mtodo constructor.
Mtodo de Destructores
de objetos:
Los objetos que ya no son utilizados en un programa,
ocupan intilmente espacio de memoria, que es
conveniente recuperar en un momento dado. Segn el
lenguaje de programacin utilizado esta tarea es dada al
programador o es tratada automticamente por el
procesador o soporte de ejecucin del lenguaje.
En la notacin algortmica NO tomaremos en cuenta ese
problema de administracin de memoria, por lo tanto no
definiremos formas para destruir objetos. En cambio al
utilizar lenguajes de programacin si debemos conocer los
mtodos destructores suministrados por el lenguaje y
utilizarlos a fin de eliminar objetos una vez no sean tiles.