Está en la página 1de 9

Unidad 16.

Clases, Cdigo en VB (I)


16.1. Objetivos del tema.
Hemos visto los datos en el tema anterior, veamos ahora los mtodos.
Veamos ahora los mtodos desde VB, y como enfocarlos.
16.2. Introduccin.
Los mtodos es la zona donde se alberga el cdigo ejecutivo de la clase, cdigo
ejecutivo de la clase porque en la captura de datos de las propiedades tambin
hay cdigo, pero es el dedicado a la validacin de dicha captura de datos, y en
el constructor, new, tambin hay cdigo pero es el encargado de la fase de
inicializacin de marcar los valores iniciales requeridos en la clase para el
objeto.
Si no existiera cdigo en la misma, la clase puede seguir existiendo, pero lo
nico que podramos hacer con ella es crear una estructura de datos, ms o
menos compleja.
16.3. Cdigo en las Funciones, Procedimientos.
Para desarrollar una clase es necesario escribir un pequeo programa, y ese
pequeo programa se compone de una parte pblica que son los mtodos.
Estos mtodos, podemos decir que son el punto de inicio de una accin, una
accin que inicia el programa cuando reclama su presencia, es decir podramos
decir que una clase tiene un sin fin de puntos de inicio, cada uno de los
mtodos, adems del principal que es el constructor, en VB new - si
descartamos el cdigo de las propiedades -, por lo tanto, como deseamos crear
un cdigo sencillo, estructurado y ordenado, es necesario que el cdigo en el
mtodo sea breve.
Para ello el cdigo de un mtodo se compone, o se puede componer, de
llamadas a procedimientos y funciones que se llaman desde el mismo.
Adems de esa forma un procedimiento puede compartirse por varios mtodos,
lo que reduce el volumen de cdigo de la clase.
As que, en el interior de la clase escribiremos todos los procedimientos y
funciones que se necesiten para poder desarrollar todas las acciones que sean
necesarias en los mtodos.
Como esos procedimientos y funciones se quedan en eso, no en mtodos, se
declararan como privadas, los mtodos son pblicos.
16.4. Cdigo en los Mtodos.

En los mtodos, porque los procedimientos no se activan solos, y de alguna


manera han de activarse, y eso se consigue mediante la ejecucin ordenada
del cdigo que hay en cada uno de los mtodos.
Hemos dicho que cada mtodo es como un punto de inicio de un programa,
pues en ese punto es donde empieza la accin, y ah es donde a medida que se
van ejecutando las lneas de cdigo, se van escribiendo las llamadas a cada
procedimiento.

En el ejemplo de clase que sigue, se ha creado un mtodo que visualiza los


nmeros primos entre dos valores determinados.

Public Class Ejemplo


Public Sub NumerosPrimos(ByVal Desde As Integer, ByVal Hasta As Integer)
Dim x As Integer = Desde
While x <= Hasta
Select Case Primos(x)
Case True
Console.WriteLine("El nmero {0} es primo", x)
End Select
x=x+1
End While
End Sub

Private Function Primos(ByVal Numero As Long) As Boolean


Dim X As Integer = 3
Dim Final As Long
Dim Result As Boolean = True

Final = CLng(Numero / 2) + 1

Select Case Numero Mod 2 <> 0


Case True
While X < Final And Result
Result = Numero Mod X <> 0
X=X+1
End While
Case Else
If Numero > 2 Then Result = False
End Select
Primos = Result
End Function
End Class

En la clase vemos como disponemos de un procedimiento que es public, es un


mtodo, y de una funcin que es private, es una funcin, no es un mtodo.
Podemos comprobarlo porque si escribimos en
el entorno de programacin, Objeto. lo nico
que podemos ver es NumerosPrimos.

En ella vemos como en el mtodo se llama a la funcin que devolver cierto o


falso en funcin de que el nmero sea primo o no.

Public Sub NumerosPrimos(ByVal Desde As Integer, ByVal Hasta As Integer)


Dim x As Integer = Desde
While x <= Hasta
Select Case Primos(x)
Case True
Console.WriteLine("El nmero {0} es primo", x)

End Select
x=x+1
End While
End Sub

Si observamos el contenido del mtodo, veremos como no encontramos nada


que nos pueda resultar extrao, el cdigo no incorpora nada raro, y no es nada
ms que un bucle mientras

While x <= Hasta

con una estructura condicional en su interior

Select Case Primos(x)

para visualizar solo aquellos nmeros que sean primos

Console.WriteLine("El nmero {0} es primo", x)

con su correspondiente incremento al final.

x=x+1

Despus su utilizacin en el programa principal ser como vemos en el


ejemplo.

Module Module1
Sub Main()

Dim Objeto As Ejemplo = New Ejemplo


Objeto.NumerosPrimos(10, 50)
End Sub
End Module

Y su aclaracin

Dim Objeto As Ejemplo = New Ejemplo

Declaramos el objeto y se instancia.

Objeto.NumerosPrimos(10, 50)

Y ejecutamos el mtodo con el rango que deseamos visualizar.


Nada que nos pueda parecer extrao.
El nico cambio est en el exterior.

Public Class Ejemplo

Que esta declarado dentro de una clase que se llama Ejemplo.

Y despus en el programa principal.

Sub Main()
Dim Objeto As Ejemplo = New Ejemplo
Objeto.NumerosPrimos(10, 50)

End Sub
16.5. Mtodos, procedimientos.
En el ejemplo anterior lo que hemos visto es un mtodo en el formato de
procedimiento.

Public Sub NumerosPrimos(ByVal Desde As Integer, ByVal Hasta As Integer)


Dim x As Integer = Desde
While x <= Hasta
Select Case Primos(x)
Case True
Console.WriteLine("El nmero {0} es primo", x)
End Select
x=x+1
End While
End Sub

Es uno de los formatos de escritura de un mtodo.


Si observamos el interior, como ya se ha
comentado anteriormente, lo que encontramos es
una estructura de las ya vistas anteriormente,
programacin estructurada.
16.6. Mtodos, funciones.
Pero si deseamos saber si un nmero es primo, o es par, el mtodo nos debe
devolver un dato, que puede ser cierto o falso, o cualquier otro tipo de dato,
que nos indicara en ste caso, que el nmero es primo o es par.

Por lo tanto lo que necesitamos es una funcin que es la estructura con la que
se obtiene un dato a partir de la ejecucin de la misma, as que podemos
convertir la funcin de antes en un mtodo, basta con cambiarla de private a
public:

Public Function Primos(ByVal Numero As Long) As Boolean


Dim X As Integer = 3
Dim Final As Long
Dim Result As Boolean = True

Final = CLng(Numero / 2) + 1
Select Case Numero Mod 2 <> 0
Case True
While X < Final And Result
Result = Numero Mod X <> 0
X=X+1
End While
Case Else
If Numero > 2 Then Result = False
End Select
Primos = Result
End Function

Y as en nuestro programa podremos escribir:

Sub Main()
Dim Objeto As Ejemplo = New Ejemplo
Dim Numero As Integer

Numero = CInt(Console.ReadLine)

Select Case Objeto.Primos(Numero)


Case True
Console.WriteLine("El {0} es primo", Numero)
Case Else
Console.WriteLine("El {0} no es primo", Numero)
End Select
End Sub

Primos nos devolver un valor cierto o falso.

Select Case Objeto.Primos(Numero)

Que se usar en el Select Case, para emitir un mensaje u otro.


Esto permite una legibilidad ms clara del programa.

Por lo que podemos comprobar que un mtodo puede ser escrito como funcin
o como procedimiento.
Solo hay que utilizar la sintaxis adecuada en cada momento.
16.7. Conclusiones.
Se ha visto en el tema donde se escribe el cdigo dentro de una clase.

Que la clase se compone de procedimientos y funciones, y que cuando estos


son pblicos, se convierten en mtodos.
Que el punto de partida son los mtodos que componen la clase.
Y como una clase tiene muchos mtodos, en realidad hay muchos puntos de
partida.

Pero en realidad, tendramos que decir que el punto de partida es New y que
se ejecuta cada vez que se crea una instancia de la clase, ya que despus
podramos decir que la clase, el objeto, queda a la espera de los mtodos que
sean ejecutados.

Aadamos tambin que en el interior de los mtodos, procedimientos,


funciones, lo que tenemos escrito son las estructuras de programacin que
vimos al inicio de curso.

Estructuras lineales.
Estructuras alternativas, condicionales
Estructuras repetitivas.

Los mtodos, son programas pequeos.

También podría gustarte