You are on page 1of 5

Todo .NET Framework est basado en clases (u objetos). A diferencia de las versiones anteriores de Visual Basic, la versin .

NET de este lenguaje basa su funcionamiento casi exclusivamente en las clases contenidas en .NET Framework, adems casi sin ningn tipo de limitacin. La POO es una evolucin de la programacin por procedimientos llamada tambin estructurada. Se basaba en funciones y procedimientos y el cdigo que controlaba el flujo de las llamadas a estos. En Visual Basic, sobre todo en versiones anteriores se sigue programando mucho as. A veces por desconocimiento y otras por "miedo" no se da el salto a la POO, aunque un programador con experiencia en VB puede hacer magnficas aplicaciones sin utilizar la POO (y sin aprovecharse de sus ventajas) , y sobre todo, en un tiempo relativamente reducido.

Los tres pilares de la Programacin Orientada a Objetos


Todos los lenguajes basados en objetos, deben cumplir estos tres requisitos: Herencia Encapsulacin Polimorfismo Nota: Algunos autores aaden un cuarto requisito: la abstraccin, pero este ltimo est estrechamente ligado con la encapsulacin.

Herencia
Esta es la caracterstica ms importante de la POO. Segn la propia documentacin de Visual Studio .NET: "La herencia permite crear nuevas clases a partir de clases existentes. La herencia puede simplificar el diseo de la aplicacin proporcionando una estructura de relaciones entre las distintas clases. Tambin admite la reutilizacin de cdigo porque slo se debe codificar el comportamiento de clases nuevas o distintas.". Una relacin de herencia es una relacin en la que un tipo (el tipo derivado) se deriva de otro (el tipo base), de tal forma que el espacio de declaracin del tipo derivado contiene implcitamente 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." Resumiendo: Gracias a la herencia podemos ampliar cualquier clase existente, adems de aprovecharnos de todo lo que esa clase haga.

Encapsulacin
Segn Visual Studio.NET: "La encapsulacin es la capacidad de contener y controlar el acceso a un grupo de elementos asociados. Las clases proporcionan una de las formas ms comunes de encapsular elementos." Cuando usamos las clases, stas tienen una serie de caractersticas (los datos que manipula) as como una serie de comportamientos (las acciones a realizar con esos datos). La encapsulacin es esa capacidad de la clase de ocultarnos sus interioridades para que slo veamos lo que tenemos que ver, sin tener que preocuparnos de cmo est codificada para que haga lo que hace... simplemente nos debe importar que lo hace. Resumiendo: Establece la separacin entre la interfaz del objeto y su implementacin.

Polimorfismo
Segn la documentacin de Visual Studio.NET: "El polimorfismo se refiere a la posibilidad de definir mltiples clases con funcionalidad diferente, pero con mtodos o propiedades denominados de forma idntica, que pueden utilizarse de manera intercambiable mediante cdigo cliente en tiempo de ejecucin." Dicho de otra manera, puede tener mltiples clases que se pueden utilizar de forma intercambiable, si bien cada clase implementa las mismas propiedades o los mismos mtodos de maneras diferentes. El polimorfismo es importante en la programacin 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. Resumiendo: Determina que el mismo nombre de mtodo realizar diferentes acciones segn el objeto sobre el que se ha aplicado.

Qu es una clase?
Los programas de Visual Basic se generan con objetos como formularios y controles. Los objetos tambin se pueden utilizar para representar cosas reales como personas, equipos informticos o incluso algo ms abstracto, como una cuenta bancaria. Una clase es simplemente una representacin de un tipo de objeto. Pensad 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. Aunque puede que no os hayis dado cuenta, ya hemos utilizado las clases en otros tutoriales de VB que hay por aqu, como por ejemplo, en el tutorial bsico de Visual Basic .NET y las seguiremos viendo en los prximos Tips o Tutoriales que vengan.

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 accin de crear una clase se denomina creacin de instancias. Hasta ahora hemos agregado los controles TextBox a su formulario arrastrndolos desde el Cuadro de herramientas, pero tambin puede crear instancias de un objeto TextBox en su cdigo si utiliza la palabra clave New.
Dim Textbox1 As New TextBox

Qu hay dentro de una clase?


Todos los objetos tienen propiedades que describen sus atributos, mtodos que definen sus acciones y eventos que definen sus respuestas. Igualmente, la clase que define un objeto tiene sus propias propiedades, mtodos y eventos (a veces llamados miembros) que se pasan a todas las instancias de esa clase. Por ejemplo, una clase que representa una cuenta bancaria podra tener propiedades como AccountNumber o AccountBalance, mtodos como CalculateInterest y eventos como BalanceChanged. Una vez creada la instancia de un objeto de cuenta bancaria, puede tener acceso a sus propiedades, mtodos y eventos de igual manera que si se tratara de un objeto TextBox. Algunos miembros de una clase son privados; slo se tiene acceso a ellos mediante cdigo dentro de la clase. Por ejemplo, una clase de cuenta bancaria puede tener un mtodo para calcular un saldo. Lo lgico es permitir que un programa lea ese balance pero no que pueda cambiarlo directamente. Puede ocultar los miembros de una clase si los declara como Private o exponerlos si los declara como Public. Tambin puede permitir el acceso a una propiedad y a la vez impedir que el programa cambie su valor declarndolo como ReadOnly. El cdigo siguiente muestra cmo podra ser una clase BankAccount, por ejemplo:
'Declaramos la clase BlankAccount Class BankAccount 'La hacemos privada Private AccountNumber As String Private AccountBalance As Decimal 'Y la ponemos publica para que calcule el balance Public Sub UpdateBalance() End Sub ReadOnly Property Balance() As Decimal Get Return AccountBalance

End Get End Property End Class

Conceptosde ProgramacinOrientadaa Objetos (Parte1)


En esta primera serie de post temticos, tengo como objetivo poder desarrollar varios conceptos de programacin orientada a objetos, empezando por ella misma. Que es la Programacin orientada o objetos o POO? Podramos decir que son una serie de normas conceptuales para mejorar la programacin estructurada, se basa en la idea natural de un mundo lleno de objetos como dira Booch. Tambin es un paradigma de programacin que tiene el objeto como elemento fundamental, es decir que resuelve problemas mediante la colaboracin e interaccin de objetos. A su vez, posee 3 pilares, que son encapsulamiento, herencia y polimorfismo que mas tarde explicare. Los dos primeros conceptos, los cuales son indispensables para entender los pilares de la POO, son Clase y Objeto. Clase Se podra decir que es un conjunto de atributos y mtodos que representan una abstraccin de la realidad. Ahora bien Que es eso de Atributos y Mtodos? Para simplificar los atributos son contenedores de variables de un tipo especifico (el que se requiera) y los mtodos se definen como lo que el objeto o clase puede hacer. Objeto Es la instancia de una clase, es decir el fruto de la creacin de una variable del tipo de Clase, este posee:

Identidad: Los objetos se diferencian entre si. Comportamiento: El objeto puede realizar ciertas acciones especificas (Mtodos) Estado: El objeto almacena cierta informacin (Atributos). Ahora ya estamos en condiciones de abordar los pilares de la POO.

Encapsulamiento Es la propiedad de un objeto de ocultar su estado al mundo exterior, es decir que los valor que contienen los atributos estn ocultos y solo son accesible mediante un mtodo que los exponga. Por ejemplo: Supongamos que tenemos un atributo que se llama DNI y es del tipo int, por encapsulamiento este DNI no puede ser visible desde afuera de la clase, es por esto que tengo un mtodo DarDNI() que cuando lo invoco me da el valor de la propiedad DNI. Herencia La capacidad de una clase de orden inferior que tiene para adquirir comportamiento y estados de una de orden superior. La relacin que se genera, a nivel de clase, es la de Esta Clase X es un tipo de Clase Y porque ha heredado de ella. Polimorfismo Este se gano la fama del concepto mas difcil de entender en un principio. Una definicin formal seria Es la capacidad de un objeto de responder de diferente manera a la invocacin de un mtodo, dependiendo la Clase mediante la cual este especificado, ahora bien Que quiere decir esto?. De esta manera el polimorfismo es la capacidad que tiene un objeto de Cambiar de forma , es decir acta diferente al mismo mtodo dado que son de clases diferentes.

You might also like