La programación orientada a objetos (POO) es
una forma de programación que utiliza objetos, ligados mediante mensajes, para
la solución de problemas. Puede considerarse como una extensión natural de la programación estructurada en un
intento de potenciar los conceptos de modularidad y reutilización del código.
MECANISMOS BASICOS DEL
POO
Los mecanismos básicos de la programación orientada
a objetos son: objetos, mensaje, métodos
y clases.
Objetos
Un programa tradicional se compone de
procedimientos y datos. Un programa orientado a objetos se compone solamente de
objetos. Un objeto es una encapsulación
de datos y de los procedimientos para manipularlos. Dicho de otra forma, un
objeto es una entidad que tiene unos atributos particulares, las propiedades, y
unas formas de operar sobre ellos, los métodos.
Por lo tanto, un objeto contiene, por una parte, operaciones que definen su
comportamiento, y por otra, variables manipuladas por esas operaciones que
definen su estado.
Por ejemplo, una ventana del sistema operativo
Windows es un objeto. El color de fondo
de una ventana, el ancho, el alto, etc. son propiedades. Las rutinas,
lógicamente transparentes al usuario, que permiten maximizar la ventana,
minimizarla, etc. son métodos.
Mensajes
Cuando se ejecuta un programa orientado a
objetos, los objetos están recibiendo, interpretando y respondiendo a mensajes
de otros objetos. Esto marca una clara diferencia con respecto a los elementos
de datos positivos de los sistemas tradicionales. Por ejemplo, en Visual Basic
un mensaje
esta asociado con un procedimiento, de tal forma que cuando un objeto recibe un
mensaje la respuesta a ese mensaje es ejecutar el procedimiento asociado. Este
procedimiento recibe el nombre de método.
Otro ejemplo; cuando un usuario
quiere maximizar una ventana Windows, lo
que hace simplemente es pulsar el botón de la misma que realiza esa
acción. Eso, provoca que Windows envíe un mensaje a la ventana para indicar que
tiene que maximizarse. Como respuesta a este mensaje se ejecutara el método
programado para ese fin.
Métodos
Un método se implementa en una clase de objetos
y determina como tiene que actuar el objeto cuando recibe un mensaje. En
adición, las propiedades permitirán almacenar información para dicho objeto. Un
método puede también enviar mensajes a otros objetos solicitando una acción o
información.
La estructura más interna de un
objeto esta oculta para otros usuarios y la única conexión que tiene con el
exterior son los mensajes. Los datos que están dentro de un objeto solamente
pueden ser manipulados por los métodos asociados al propio objeto.
La ejecución de un programa
orientado a objetos realiza fundamentalmente tres cosas.
1.- Crea los objetos necesarios.
2.- Los mensajes
enviados a unos y otros objetos dan lugar a que se procese internamente la
información.
3.- Finalmente, cuando
los objetos no son necesarios, son borrados, liberándose la memoria ocupada por
los mismos.
Clases
Una clase es un tipo de objeto definido por el
usuario. Una clase equivale a la
generalización de un tipo específico de objetos. Por ejemplo, piense en un
molde para hacer flanes; el molde es la clase y los flanes los objetos.
Un objeto de una determinada clase
se crea en el momento en que se declare una variable de dicha clase. Por
ejemplo:
Private MiTexto As TextBox ‘declara
MiTexto de la clase TextBox
Set MiTexto = Text2 ‘asigna a MiTexto el objeto Text2
Para enfocar la caja de texto MiTexto
de una determinada ventana, esto es, poner el cursor sobre ella, le enviaremos
el mensaje correspondiente; el Visual Basic, esto se hace invocando el método SetFocus así:
MiTexto.SetFocus ‘enfocar el objeto
referenciado por Mitexto
Características de la POO
Las características fundamentales de la POO
son: abstracción, encapsulamiento,
herencia y poliformismo.
Abstracción
Por medio de la abstracción conseguimos no
detenernos en los detalles concretos de las cosas que no interesen en cada
momento, sino generalizar y centrarse en los aspectos que permitan tener una
visión global del tema. Por ejemplo, el estudio de un ordenador podemos
realizarlo a nivel de funcionamiento de sus circuitos electrónicos, en términos
de corriente, tensión, etc., o a nivel de transferencias entre registros,
centrándose así el estudio en el flujo de información entre las unidades que lo
componen (memoria, unidad aritmética, unidad de control, registros, etc.), sin
importarnos el comportamiento de los circuitos electrónicos que componen estas
unidades.
Encapsulamiento
Esta característica permite ver un objeto como una
caja negra en la que se ha metido de alguna manera toda la información
relacionada con dicho objeto. Esto nos permitirá manipular los objetos como
unidades básicas, permaneciendo oculta su estructura interna.
Herencia
La herencia
es el mecanismo para compartir automáticamente métodos y datos entre
clases y subclases de objetos. El usuario de Visual Basic no dispone de esta
característica.
Polimorfismo
Esta característica permite implementar
múltiples formas de un mismo método, dependiendo cada una de ellas de la clase
sobre la que se realice la implementación. Esto hace que se pueda acceder a una
variedad de métodos distintos (todos con el mismo nombre) utilizando
exactamente el mismo medio de acceso.