Partager via


Walkthrough: Defining Classes 

This walkthrough demonstrates how to define classes, which you can then use to create objects. It also shows you how to add properties and methods to the new class, and demonstrates how to initialize an object.

Note

The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. To change your settings, choose Import and Export Settings on the Tools menu. For more information, see Visual Studio Settings.

To define a class

  1. Create a project by clicking New Project on the File menu. The New Project dialog box appears.

  2. Select Windows Application from the list of Visual Basic project templates to display the new project.

  3. Add a new class to the project by clicking Add Class on the Project menu. The Add New Item dialog box appears.

  4. Name the new module UserNameInfo.vb, and then click Open to display the code for the new class.

    Public Class UserNameInfo
    End Class
    

    Note

    You can use the Visual Basic Code Editor to add a class to your startup form by typing the Class keyword followed by the name of the new class. The Code Editor provides a corresponding End Class statement for you.

  5. Define a private field for the class by placing the following code between the Class and End Class statements:

    Private userNameValue As String
    

    Declaring the field as Private means it can be used only within the class. You can make fields accessible from outside a class by using access modifiers such as Public that provide greater access. For more information, see Access Levels in Visual Basic.

  6. Define a property for the class by adding the following code:

    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
    
  7. Define a method for the class by adding the following code:

    Public Sub Capitalize()
        ' Capitalize the value of the property.
        userNameValue = UCase(userNameValue)
    End Sub
    
  8. Define a parameterized constructor for the new class by adding a procedure named Sub New:

    Public Sub New(ByVal UserName As String)
        ' Set the property value.
        Me.UserName = UserName
    End Sub
    

    The Sub New constructor is called automatically when an object based on this class is created. This constructor sets the value of the field that holds the user name.

To create a button to test the class

  1. Change the startup form to design mode by right-clicking its name in Solution Explorer, and then clicking View Designer. The startup form for Windows Application projects is named Form1.vb by default. The main form will then appear.

  2. Add a button to the main form and double-click it to display the code for the Button1_Click event handler. Add the following code to call the test procedure:

    ' 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)
    

To run your application

  1. Run your application by pressing F5. Click the button on the form to call the test procedure. It displays a message stating that the original UserName is "MOORE, BOBBY", because the procedure called the object's Capitalize method.

  2. Click OK to dismiss the message box. The Button1 Click procedure changes the value of the UserName property, and displays a message stating that the new value of UserName is "Worden, Joe".

See Also

Tasks

How to: Add Events to a Class

Reference

Imports Statement

Concepts

Classes vs. Modules

Other Resources

Understanding Classes
Class Properties, Fields, and Methods