Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Aplicacin prctica
Contenido
Qu es una clase? ...................................................................................................................................... 1 De qu se compone una clase? ................................................................................................................. 2 Diseo de una clase en Visual Basic .NET ................................................................................................... 3 Creacin de un objeto en base a la clase ..................................................................................................... 5
Qu es una clase?
Los programas de Visual Basic .NET 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 un diseo de un tipo de objeto. Podemos pensar que es el plano que describe el objeto. As como un plano puede utilizarse para construir varios coches, una clase podemos usarla para crear varias copias de un objeto. Cuando estamos programando utilizamos una variable de tipo String. Seguro que slo es una variable? Ejemplo con lenguajes no orientados a objetos: Dim variable as string Variable = Hola Ejemplo con Visual Basic .NET Dim variable as string Variable = new string(hola) O bien: Dim variable as new string(Hola) La clase es STRING y el objeto es VARIABLE. Cuntos objetos pueda crear de la clase STRING? Infinidad, tantos como necesite. Cada objeto es una "instancia" independiente de una clase, la accin de crear una clase se denomina creacin de instancias. Seguro que ya te has fijado en la palabra new, es un mtodo que existe en la clase y que no vamos a poder utilizar como el resto de mtodos. Este es especial, se ejecuta al instanciar un nuevo objeto. En ese momento se construye el objeto en base al mtodo new. En el captulo 4 lo veremos ms extensamente.
En resumen: Propiedades Mtodos Eventos Pongamos como ejemplo un objeto que utilizamos habitualmente en un programa grfico, un cuadro de texto o Textbox. Este objeto tiene diversas propiedades, mtodos y eventos que se pueden utilizar.
Prepararamos el diseo de tres variables para guardar los valores que nos interesan. Si queremos calcular la edad utilizaremos la funcin edad. Ya en este ejemplo vemos que no vamos a poder manipular el valor Edad, salvo que cambie la Fecha de Nacimiento. Con esto se quiere mostrar que an no utilizando POO podemos ser correctos en la programacin. Versin 2: Hacemos una primera versin de la clase
Public Class Persona Public Sexo As Char Public FechaNacimiento As Date Public Nombre As String Sub New(ByVal Nombre As String, ByVal Sexo As Char, ByVal FechaNacimiento As Date) Me.Nombre = Nombre Me.Sexo = Sexo Me.FechaNacimiento = FechaNacimiento End Sub Function Edad() As Integer Edad = Convert.ToInt32(DateDiff(DateInterval.Year, Now, FechaNacimiento)) End Function End Class
Esta clase no es correcta, si repasamos las caractersticas que debe tener. Es posible modificar el valor de las variables desde fuera de la clase, y, eso es un pecado. No se respeta la encapsulacin, en nuestra prxima versin esto lo hemos de solucionar.
Ya no es posible acceder a las variables directamente, slo a travs de las Property podemos acceder a ellas. Esto protege los valores. Por ejemplo para introducir el valor Sexo podremos limitar que slo se permita el hombre H o M. Una ltima vuelta, la Edad es una propiedad o un mtodo? Hemos dejado una funcin para que nos muestre la Edad porque es un valor que se obtiene mediante un clculo, es cierto, pero, de verdad la Edad es un mtodo? En todo caso un mtodo sera CumplirAos, pero, no la Edad.
Vemos que se ha puesto ReadOnly. La Edad no es una propiedad que podamos manipular desde el objeto Persona, slo se podr cambiar desde la propiedad.