Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
Paradigma de programacin orientado a objetos
Contenido
Principios del paradigma orientado a objetos
Abstraccin
Encapsulamiento
Polimorfismo
Herencia
Conceptos de programacin orientada a objetos
Objetos
Clases
Herencia
Interfaces
Abstraccin
La abstraccin es un concepto que permite extraer la informacin esencial de un objeto. En la
programacin orientada a objetos, la abstraccin ayuda a la fcil conceptualizacin de los
objetos del mundo real en un programa de software.
La abstraccin se encuentra en todas partes! Cualquier cosa que vemos, hacemos y vivimos
tienen algo de abstraccin. Por ejemplo:
En matemticas, la multiplicacin es una especie de abstraccin. El smbolo
es un smbolo abstracto que puede hacer la multiplicacin de dos elementos.
En el arte, el arte abstracto es un tipo de arte que representa la forma destilada
del mundo.
La abstraccin posibilita la conceptualizacin de objetos del mundo real, eliminando los detalles
innecesarios del objeto. Cuando generalizamos todos los objetos que son similares, saldrn a
la vista los detalles poco comunes acerca de estos objetos.
Por ejemplo, cuando modelamos un prototipo genrico para una televisin CRT (cathode-ray
tube o de bulbos) y para una televisin de plasma, buscamos detalles como el tipo de pantalla,
altura, anchura, espesor, etc., que son los elementos necesarios para una televisin. Sin
embargo, un objeto de televisin no tiene porqu tener los detalles de qu tipo de electrones se
necesitan para alimentar el CRT o qu tipo de plasma lquido se utilizar para alimentar los
televisores de plasma. Este tipo de detalles son los detalles innecesarios.
Ejercicio. Describe los siguientes objetos para los contextos mencionados.
1. Persona: hospital, tienda departamental, universidad
2. Libro: biblioteca, librera, curso
Encapsulamiento
El encapsulamiento (o encapsulacin) se define como la ocultacin de la implementacin de los
objetos y se refiere al proceso de crear un objeto lo ms autosuficiente posible: un objeto que
contenga no slo el cdigo, sino tambin los datos. La encapsulacin es el proceso de encerrar
todo el cdigo necesario para una operacin en particular en un mdulo nico y la limitacin de
las dependencias externas a dicho mdulo.
La encapsulacin es la inclusin, dentro de un objeto, de todos los recursos que necesita para
que el objeto funcione, bsicamente operaciones y datos. En la programacin orientada a
objetos, la encapsulacin se logra principalmente mediante la creacin de clases y son estas
clases las que exponen pblicamente las operaciones y las propiedades de los objetos. La
clase es una especie de recipiente (o cpsula) que contiene (o encapsula) el conjunto de
operaciones, atributos y propiedades para proporcionar sus funcionalidades a otras clases. En
ese sentido, la encapsulacin tambin permite a una clase cambiar su implementacin interna
sin perjudicar el funcionamiento general del sistema. Entonces, la idea de la encapsulacin es
ocultar cmo una clase hace lo que hace y permite solicitar qu hacer.
Polimorfismo
El polimorfismo es un trmino genrico que significa "muchas formas". Ms precisamente,
polimorfismo significa la capacidad de solicitar que las mismas operaciones se realicen por una
gama amplia de diferentes tipos de cosas.
El polimorfismo permite que dos o ms objetos respondan al mismo mensaje. Una operacin
llamada nombre podra ser implementada por un objeto de la clase de Curso. Aunque la
aplicacin de este mensaje nombre puede devolver la clave y el nombre del curso, su
protocolo es el mismo que la operacin nombre de un objeto de la clase Estudiante. El
polimorfismo permite que un objeto emisor pueda comunicarse con diferentes objetos de una
manera consistente sin tener que preocuparse acerca de cuntas diferentes implementaciones
existen de un mensaje.
Una analoga de polimorfismo en la vida diaria es cmo responden los estudiantes a la
campana de una escuela secundaria. Cada estudiante conoce el significado de la campana.
Cuando la campana suena (mensaje), tiene su propio significado para los diferentes
estudiantes (objetos). Algunos estudiantes van a casa, algunos van a la biblioteca y algunos
van a otras clases. Cada estudiante responde a la campana, pero cmo responden a ella
puede ser diferente.
En la programacin orientada a objetos, el polimorfismo se logra mediante el uso de diferentes
tcnicas llamadas sobrecarga de mtodos, sobrecarga de operadores y reemplazo de mtodos.
Ejercicio. Cmo se aplicara el polimorfismo en los siguientes escenarios?
1. Aparatos electrodomsticos
2. Restaurantes y bares
3. Transporte pblico
Herencia
La herencia permite a una clase tener el mismo comportamiento que otra clase y ampliar o
adaptar ese comportamiento para proporcionar una accin especial para necesidades
especficas.
Una de las relaciones ms importantes entre los objetos en el mundo real es la especializacin,
lo que puede ser descrito como una relacin "es un". Cuando decimos que un perro es un
mamfero, queremos decir que el perro es un tipo especializado de mamfero. Tiene todas las
caractersticas de cualquier mamfero (que tiene cras vivas, las alimenta con leche, tienen
pelo), pero especializa estas caractersticas a las caractersticas de la familia canis domesticus.
Un gato tambin es un mamfero, por lo tanto esperamos que comparta ciertas caractersticas
con el perro, que se generalizan en mamferos, pero que difieren en las caractersticas que se
especializan en los gatos.
La especializacin y la generalizacin de las relaciones son recprocas y jerrquicas. La
especializacin es lo contrario a la generalizacin: los mamferos generalizan lo que es comn
entre los perros y los gatos y los perros y los gatos especializan a los mamferos a sus subtipos
especficos.
Veamos el siguiente ejemplo. Tanto la clase Licenciatura como la clase Posgrado tienen
comportamientos similares, como la gestin de un nombre, una direccin, una especializacin y
un promedio. En lugar de poner este comportamiento en ambas clases, se coloca en una
nueva clase llamada Estudiante. Tanto Licenciatura como Posgrado se convierten en
subclases de la clase Estudiante y ambas heredan el comportamiento de Estudiante.
Ambas clases Licenciatura y Posgrado puede ahora aadir un comportamiento adicional
que es exclusivo de ellas. Por ejemplo, el programa de Posgrado puede ser ya sea de
maestra o doctorado. Por otro lado, la clase Licenciatura podra mantener el registro del
ao de los estudiantes.
Las clases que heredan de una clase se llaman subclases. La clase de la cual hereda una
subclase es la superclase. En el ejemplo anterior, Estudiante es la superclase de
Licenciatura y Posgrado y stas son subclases de Estudiante.
Ejercicio. Contesta las siguientes preguntas:
1. Qu tienen en comn Wii, XBOX y PlayStation?
2. Cules seran las subclases de las consolas de videojuego anteriores?
3. Qu caractersticas tienen en comn un iPhone 5, un Galaxy S III y un
Lumia?
4. Cul sera la superclase de los telfonos celulares anteriores?
silla
reloj
coche
Los objetos del mundo real varan en complejidad: algunos pueden tener pocos estados y
comportamientos, mientras que otros pueden tener muchos ms. Por ejemplo, un rbol y una
lmpara tienen pocos estados y comportamientos comparados con un radio y una televisin.
Una lmpara de escritorio puede tener slo dos estados posibles (encendido y apagado) y dos
posibles comportamientos (encender y apagar), pero un radio puede tener otros estados
(encendido, apagado, volumen actual, estacin actual) y comportamiento (encender, apagar,
subir el volumen, bajar el volumen, buscar, explorar y sintonizar). De la misma forma podemos
podemos observar que algunos objetos contienen, a su vez, a otros objetos. Estas
observaciones del mundo real se traducen al mundo de la POO.
Los objetos de software son conceptualmente similares a un objeto real: tienen estados y
Clases
En el mundo real podemos encontrar muchos objetos del mismo tipo. Por ejemplo, pueden
haber miles de bicicletas de la misma marca y modelo. Cada bicicleta fue construida bajo un
mismo diseo, por lo tanto contienen los mismo componentes. En trminos de POO, decimos
que la bicicleta es una instancia de la clase de objetos conocida como Bicicleta. Una clase
es el diseo bajo el cual se crean los objetos individuales.
Ejercicio. Analiza las siguientes clases de objetos:
nmero
libro
telfono
int cadencia = 0;
int desplazamiento = 0;
int velocidad = 1;
void cambiarCadencia(int nuevoValor) {
cadencia = nuevoValor; }
bici1.cambiarCadencia(50);
bici1.acelerar(10);
bici1.cambiarVelocidad(2);
bici1.imprimirEstado();
bici2.cambiarCadencia(50);
bici2.acelerar(10);
bici2.cambiarVelocidad(2);
bici2.cambiarCadencia(40);
bici2.acelerar(10);
bici2.cambiarVelocidad(3);
bici2.imprimirEstado();
}
}
El resultado de esta prueba imprime, para las dos bicicletas, la cadencia final de pedaleo, la
velocidad de desplazamiento y la velocidad:
cadencia: 50, velocidad de desplazamiento: 10, velocidad: 2
cadencia: 40, velocidad de desplazamiento: 20, velocidad: 3
Herencia
Objetos de diferentes tipos a veces tienen algo en comn. Por ejemplo, las bicicletas de
montaa, de carrera y BMX comparten las caractersticas de las bicicletas (velocidad de
desplazamiento, cadencia de pedaleo, velocidad). Sin embargo, cada una de ellas tiene
caractersticas adicionales que las hacen diferentes: Las de montaa tienen generalmente
engranes adicionales, las de carrera tienen un manubrio diferente y las BMX solamente tienen
una velocidad.
La POO permite a las clases heredar el estado y comportamiento de otras clases. En nuestro
ejemplo, la clase Bicicleta ahora es una superclase de BicicletaDeMontaa,
BicicletaDeCarrera y BicicletaBMX, Esta relacin de herencia se muestra en la Figura
1. En Java, a cada clase se le permite tener una superclase directa y cada superclase puede
tener un nmero ilimitado de subclases:
Figura 1. La superclase Bicicleta y sus subclases BicicletaDeMontaa, BicicletaDeCarrera y
BicicletaBMX.
nmero
telfono
vaso
Interfaces
Como vimos anteriormente, los objetos definen su interaccin con el mundo exterior mediante
los mtodos que exponen. Los mtodos de los objetos son la interfaz con el mundo exterior.
Por ejemplo, los botones de un televisor o un reproductor de Blu-Ray son la interfaz entre
nosotros y los circuitos que hay dentro de los aparatos.
Telfono
Radio
Refrigerador