La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaremos las cosas en la vida real que otros tipos de programación.
2. CONCEPTO:
La programación Orientada a objetos (POO) es una forma especial de
programar, más cercana a como expresaríamos las cosas en la vida
real que otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera
distinta, para escribir nuestros programas en términos de objetos,
propiedades, métodos y otras cosas que veremos rápidamente para
aclarar conceptos y dar una pequeña base que permita soltarnos un
poco con este tipo de programación.
4. Clase
Los programas de Visual Basic se generan con objetos como formularios y
controles. Los objetos también se pueden utilizar para representar cosas reales
como personas, equipos informáticos o incluso algo más abstracto, como una
cuenta bancaria.
Una clase es simplemente una representación de un tipo de objeto. Piensa en ella
como un plano que describe el objeto. Así como un plano puede utilizarse para
construir varios edificios, una clase podemos usarla para crear varias copias de un
objeto.
Por ejemplo, el control TextBox lo define una clase TextBox, que define su aspecto
y sus funciones. Cada vez que arrastramos un control TextBox a un formulario,
realmente está creando una nueva instancia de la clase TextBox.
Cada control TextBox es una copia exacta, aunque distinta, de la clase que lo
define, la clase TextBox. Puesto que cada objeto es una "instancia" independiente
de una clase, la acción de crear una clase se denomina creación de instancias.
Hasta ahora hemos agregado los controles TextBox a su formulario arrastrándolos
desde el Cuadro de herramientas, pero también puede crear instancias de un objeto
TextBox en su código si utiliza la palabra clave New.
Dim Textbox1 As New TextBox
5. Objetos en POO
Los objetos son ejemplares de una clase cualquiera. Cuando creamos un
ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta
acción de crear un objeto a partir de una clase se llama instanciar (que viene
de una mala traducción de la palabra instace que en inglés significa
ejemplar).
Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto
o definición de fracción sería la clase, pero cuando ya estamos hablando de
una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir una instrucción especial que
puede ser distinta dependiendo el lenguaje de programación que se emplee,
pero será algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se tiene que crear una instancia de la
clase que sigue a continuación. Dentro de los paréntesis podríamos colocar
parámetros con los que inicializar el objeto de la clase coche.
6. Herencia
Esta es la característica más importante de la POO. Según la propia
documentación de Visual Studio .NET:
"La herencia permite crear nuevas clases a partir de clases existentes. La
herencia puede simplificar el diseño de la aplicación proporcionando una
estructura de relaciones entre las distintas clases. También admite la
reutilización de código porque sólo se debe codificar el comportamiento de
clases nuevas o distintas.".
Una relación de herencia es una relación en la que un tipo (el tipo derivado)
se deriva de otro (el tipo base), de tal forma que el espacio de declaración
del tipo derivado contiene implícitamente todos los miembros de tipo no
constructor del tipo base.
"La herencia es la capacidad de una clase de obtener la interfaz y
comportamiento de una clase existente."
Gracias a la herencia podemos ampliar cualquier clase existente, además de
aprovecharnos de todo lo que esa clase haga.
7. Método
Algoritmo asociado a un objeto (o a una clase de objetos), cuya
ejecución se desencadena tras la recepción de un "mensaje". Desde el
punto de vista del comportamiento, es lo que el objeto puede hacer.
Un método puede producir un cambio en las propiedades del objeto, o
la generación de un "evento" con un nuevo mensaje para otro objeto
del sistema.
8. Evento
Es un suceso en el sistema (tal como una interacción del usuario con
la máquina, o un mensaje enviado por un objeto). El sistema maneja el
evento enviando el mensaje adecuado al objeto pertinente. También
se puede definir como evento la reacción que puede desencadenar un
objeto; es decir, la acción que genera.
9. Atributos
Los atributos se guardan en variables denominadas de instancia, y
cada objeto particular puede tener valores distintos para estas
variables. Las variables de instancia también denominados miembros
dato, son declaradas en la clase pero sus valores son fijados y
cambiados en el objeto.
10. Mensaje
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ó.
Contenedor de un tipo de datos asociados a un objeto (o a una clase
de objetos), que hace los datos visibles desde fuera del objeto y esto
se define como sus características predeterminadas, y cuyo valor
puede ser alterado por la ejecución de algún método.
12. Abstracción
Denota las características esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un
"agente" abstracto que puede realizar trabajo, informar y cambiar su estado,
y "comunicarse" con otros objetos en el sistema sin revelar "cómo" se
implementan estas características. Los procesos, las funciones o los
métodos pueden también ser abstraídos, y, cuando lo están, una variedad
de técnicas son requeridas para ampliar una abstracción. El proceso de
abstracción permite seleccionar las características relevantes dentro de un
conjunto e identificar comportamientos comunes para definir nuevos tipos
de entidades en el mundo real. La abstracción es clave en el proceso de
análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a
armar un conjunto de clases que permitan modelar la realidad o el problema
que se quiere atacar.
13. Encapsulamiento
"La encapsulación es la capacidad de contener y controlar el acceso a un
grupo de elementos asociados. Las clases proporcionan una de las formas
más comunes de encapsular elementos."
Cuando usamos las clases, éstas tienen una serie de características (los
datos que manipula) así como una serie de comportamientos (las acciones a
realizar con esos datos). La encapsulación es esa capacidad de la clase de
ocultarnos sus interioridades para que sólo veamos lo que tenemos que ver,
sin tener que preocuparnos de cómo está codificada para que haga lo que
hace... simplemente nos debe importar que lo hace.
14. Polimorfismo
"El polimorfismo se refiere a la posibilidad de definir múltiples clases con
funcionalidad diferente, pero con métodos o propiedades denominados de
forma idéntica, que pueden utilizarse de manera intercambiable mediante
código cliente en tiempo de ejecución."
Dicho de otra manera, puede tener múltiples clases que se pueden utilizar
de forma intercambiable, si bien cada clase implementa las mismas
propiedades o los mismos métodos de maneras diferentes. El polimorfismo
es importante en la programación orientada a objetos puesto que permite
usar elementos que tienen el mismo nombre, independientemente del tipo
de objeto que se esté utilizando en ese momento.
15. Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una
aplicación en partes más pequeñas (llamadas módulos), cada una de las
cuales debe ser tan independiente como sea posible de la aplicación en sí y
de las restantes partes. Estos módulos se pueden compilar por separado,
pero tienen conexiones con otros módulos. Al igual que la encapsulación,
los lenguajes soportan la modularidad de diversas formas.
16. POO EN VISUAL BASIC:
La programación en Visual Basic se puede realizar de diversas formas
o estilos. Este lenguaje nace como un ambiente de prototipación
rápida (RAD) para aplicaciones bajo el sistema operativo
Microsoft Windows. La orientación a objetos se incorpora como un
elemento posterior al nacimiento del lenguaje y actualmente (versión
5) no está totalmente soportada.
A pesar de lo anterior, Visual Basic permite la aplicación de los
conceptos de orientación a objetos, aunque esto no corresponda a un
mapeo directo. Acá se presenta una técnica que permite programar en
forma estándar, basándose un modelo de clases UML. Por otra parte
los conceptos que se plantean son fácilmente aplicables a otros
lenguajes de programación visuales.
17. Arquitectura de 3 capas
El objetivo principal de este planteamiento es separar y,
por lo tanto independizar, las reglas del negocio de las
aplicaciones que las utilicen. De esta forma, es posible
utilizar las mismas reglas del negocio para diferentes
aplicaciones, corriendo sobre distintas plataformas.
Una arquitectura pura de tres capas no permite ninguna
forma de comunicación directa entre la aplicación y la
capa de datos; esto es, entre los programas de usuario y
la base de datos. Los programas de aplicación deben
solicitar todos sus requerimientos a la capa del negocio, a
través de la invocación de servicios, que corresponden a
los métodos definidos para cada clase.