Tutorial: Definir clases (Visual Basic)
En este tutorial se muestra cómo definir clases que puede usar para crear objetos. También muestra cómo agregar propiedades y métodos a la nueva clase y muestra cómo inicializar un objeto.
Nota:
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.
Para definir una clase
Cree un proyecto haciendo clic en Nuevo proyecto en el menú Archivo. Aparecerá el cuadro de diálogo Nuevo proyecto .
Seleccione Aplicación de Windows en la lista de plantillas de proyecto de Visual Basic para que aparezca el nuevo proyecto.
Para agregar una nueva clase al proyecto, haga clic en Agregar clase en el menú Proyecto. Aparecerá el cuadro de diálogo Agregar nuevo elemento.
Seleccione la plantilla Clase.
Asigne el nombre
UserNameInfo.vb
a la nueva clase y, a continuación, haga clic en Agregar para mostrar el código de la nueva clase.Public Class UserNameInfo End Class
Nota
Puede usar el editor de código de Visual Basic para agregar una clase al formulario de inicio escribiendo la palabra clave
Class
seguida del nombre de la nueva clase. El editor de código proporciona la instrucciónEnd Class
correspondiente.Defina un campo privado para la clase agregando el código siguiente entre las instrucciones
Class
yEnd Class
:Private userNameValue As String
Si declara el campo como
Private
significa que solo se puede usar dentro de la clase. Puede hacer que los campos estén disponibles desde fuera de una clase mediante modificadores de acceso, comoPublic
que proporcionan más acceso. Para más información, consulte Niveles de acceso en Visual Basic.Para definir una propiedad para la clase, agregue el siguiente código:
Public Property UserName() As String Get ' Gets the property value. Return userNameValue End Get Set(ByVal Value As String) ' Sets the property value. userNameValue = Value End Set End Property
Para definir un método para la clase, agregue el siguiente código:
Public Sub Capitalize() ' Capitalize the value of the property. userNameValue = UCase(userNameValue) End Sub
Para definir un constructor parametrizado para la nueva clase, agregue un procedimiento denominado
Sub New
:Public Sub New(ByVal UserName As String) ' Set the property value. Me.UserName = UserName End Sub
Se llama automáticamente al constructor
Sub New
cuando se crea un objeto basado en esta clase. Este constructor establece el valor del campo que contiene el nombre de usuario.
Para crear un botón para probar la clase
Cambie el formulario de inicio al modo de diseño; para ello, haga clic con el botón derecho en su nombre en el Explorador de soluciones y, a continuación, haga clic en Diseñador de vistas. De forma predeterminada, el formulario de inicio para proyectos de aplicaciones Windows se denomina Form1.vb. Aparecerá el formulario principal.
Agregue un botón al formulario principal y haga doble clic en él para mostrar el código del controlador de eventos
Button1_Click
. Agregue el código siguiente para llamar al procedimiento de prueba:' Create an instance of the class. Dim user As New UserNameInfo("Moore, Bobby") ' Capitalize the value of the property. user.Capitalize() ' Display the value of the property. MsgBox("The original UserName is: " & user.UserName) ' Change the value of the property. user.UserName = "Worden, Joe" ' Redisplay the value of the property. MsgBox("The new UserName is: " & user.UserName)
Para ejecutar la aplicación
Para ejecutar la aplicación, presione F5. Haga clic en el botón del formulario para llamar al procedimiento de prueba. Muestra un mensaje que indica que el
UserName
original es "MOORE, BOBBY", porque el procedimiento llamó al métodoCapitalize
del objeto.Haga clic en Aceptar para descartar el cuadro de mensaje. El procedimiento
Button1 Click
cambia el valor de la propiedadUserName
y muestra un mensaje que indica que el nuevo valor deUserName
es "Worden, Joe".