Para poder utilizar el objeto que hemos creado, éste ha de inicializarse, para ello se utiliza el constructor de la clase.
Para ello existe en Vb el método New, que es el constructor de la clase.
Sub New(ByVal Dato As String) ‘ Constructor de la clase
DatoExterno = Dato
End Sub
La misión del constructor no es solo la de asumir los valores que se reciben en el momento de crear el objeto, si no que también se puede hacer en ese momento el control de los mismos.
Public Sub New(ByVal Dato As String)
If dato <> “” Then DatoExterno = Dato
End Sub
En el ejemplo se obliga a que el dato recibido sea distinto de nulo para asignarlo a la variable de la clase.
La declaración del constructor como public sin argumentos permite la creación de objetos sin la utilización de datos, esto no siempre puede ser práctico o cómodo.
Si en lugar de declarar el constructor como public lo declaramos como private, se impide que se generen instancias de un objeto sin que estos tengan los valores que se reclamen como adecuados en el método.
Private Sub New() ‘ impide la creación de instancias de la clase.
End Sub
En el ejemplo que hemos visto, si declaramos como private el constructor anterior, la declaración de un objeto de ésta clase obligaría a que llevará los dos datos que se piden en la sobre carga.
Explicado de otra forma, así se impide que un objeto se cree sin pasar por el control del constructor correspondiente, ya que al declararse como private, éste queda bloqueado, anulado o como deseemos decirlo, y siempre se ejecuta el declarado por nosotros como public.
El siguiente paso es crear un objeto de esta clase, aunque ya lo hemos hecho, pero de forma más avanzada.
Dim Objeto As Ejemplo
Y ahora asignemos algo al dato externo para probarlo.
Sub Main()
Dim Objeto As Ejemplo
Objeto.DatoExterno = "Contenido de la propiedad"
Console.WriteLine(Objeto.DatoExterno)
Console.ReadKey()
End Sub
No hemos podido utilizarlo, falta un pequeño matiz, hemos definido que el objeto es del tipo Ejemplo, pero no se ha creado una instancia del mismo, cambiemos la forma de definir el objeto por la que sigue.
Dim Objeto As New Ejemplo
Probemos ahora, y ahora si que funciona, y este sería el resultado.
Contenido de la propiedad
Disponemos de un dato, una propiedad que el usuario puede utilizar, y a nosotros nos permite obtener datos para el funcionamiento del objeto.
Podemos gestionar la obtención de datos de varias formas, podemos:
Obtener datos en la creación del objeto.
Asignar controladamente los datos.
Asignar sin control previo los datos.
Cuando se crea una instancia de un objeto, se ejecuta de forma predeterminada el método new, tema a parte es que lo hayamos escrito o no.
En ese método nosotros podemos reclamar la inclusión de aquellos datos que creamos oportunos, y en ese mismo momento validarlos.
Public Class Ejemplo
Dim DatoInterno As String
Private OtroInterno As Integer
Public DatoExterno As String
Sub New(ByVal Dato As String)
DatoExterno = Dato
End Sub
End Class
Si añadimos el método new a la clase, tal como esta en el ejemplo superior, en el programa habrá que hacer el siguiente cambio,
para evitar el error de sintaxis que podemos observar en la imagen, ya que no se ha introducido el valor que solicitamos en el método new.
Probemos ahora, el código modificado en el programa principal es el que sigue.
Sub Main()
Dim Objeto As New Ejemplo("Contenido de la propiedad.")
Console.WriteLine(Objeto.DatoExterno)
Console.ReadKey()
End Sub
Ahora si que funciona, y este sería el resultado.
Contenido de la propiedad.
Fijémonos en que a la propiedad DatoExterno le hemos asignado el valor obtenido en el método New.
Además no se ha realizado ningún control sobre ese dato.
Al método new se le denomina constructor de la clase.
Síguenos en: Facebook Sobre aulaClic Política de Cookies