VB 演练:定义类

演练:定义类
Visual Studio 2005 其他版本 0(共 1)对本文的评价是有帮助 评价此主题
此演练演示如何定义类,然后使用这些类创建对象。同时还说明如何为新类添加属性和方法,并演示如何初始化对象。

注意
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。
定义类

单击“文件”菜单上的“新建项目”,创建一个项目。“新建项目”对话框随即出现。

从 Visual Basic 项目模板列表中选择“Windows 应用程序”,以显示新项目。

在“项目”菜单中单击“添加类”,将一个新类添加到项目中。出现“添加新项”对话框。

选择“类”模板。

给新类 UserNameInfo.vb 命名,然后单击“添加”以显示新类的代码。

VB
Public Class UserNameInfo
End Class

注意
可以使用 Visual Basic“代码编辑器”,在新类的名称之前键入 Class 关键字,将类添加到启动窗体中。“代码编辑器”会提供相应的 End Class 语句。
在 Class 和 End Class 语句之间加入以下代码,为类定义私有字段:

VB
Private userNameValue As String

将字段声明为 Private 意味着该字段只能在该类内使用。可以通过使用提供更大访问权限的访问修饰符(如 Public)来使字段得以从类的外部进行访问。有关更多信息,请参见 Visual Basic 中的访问级别。

通过添加以下代码为类定义属性:

VB
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

通过添加以下代码为类定义方法:

VB
Public Sub Capitalize()
    ' Capitalize the value of the property.
    userNameValue = UCase(userNameValue)
End Sub

通过添加名为 Sub New 的过程为新类定义参数化的构造函数:

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

当创建基于此类的对象时,会自动调用 Sub New 构造函数。此构造函数设置保存用户名的字段值。

创建测试类的按钮

右击“解决方案资源管理器”中启动窗体的名称,将启动窗体更改为设计模式,然后单击“视图设计器”。默认情况下,“Windows 应用程序”项目的启动窗体的名称为 Form1.vb。主窗体随即出现。

在主窗体中添加一个按钮,然后双击该按钮显示 Button1_Click 事件处理程序的代码。添加下列代码以调用测试过程:

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

运行应用程序

按 F5 运行应用程序。单击窗体上的按钮以调用测试过程。它会显示一则消息,说明原来的 UserName 是“MOORE, BOBBY”,因为该过程调用了对象的 Capitalize 方法。

单击“确定”关闭该消息框。Button1 Click 过程会更改 UserName 属性的值,并显示一则消息,说明 UserName 的新值为“Worden, Joe”。

请参见

原文地址:https://www.cnblogs.com/zhangzhifeng/p/2434059.html