更新:2007 年 11 月
在本课中,您将学习如何创建一个类的实例来测试该类。
在前几课中,您已经创建了一个 Persons 类,并为其赋予了属性、方法和事件。到目前为止,您所做的只是添加代码 — 而现在要开始使用 Persons 类,并确保它按照预期的方式运行。
创建类的实例
也许您还没有意识到,在前面的许多课程中,您一直都在使用类。窗体和控件其实就是类,当您将一个“Button”控件拖动到窗体上时,实际上就是在创建 Button 类的实例。
您还可以通过使用 New 关键字的声明在代码中实例化任何类。例如,若要创建 Button 类的新实例,需要添加下面的代码。
Dim aButton As New Button
若要使用和测试 Persons 类,必须首先创建一个测试项目并添加对类模块的引用。
试一试!
为类创建测试项目
- 打开在上一课中创建的 Persons 项目。如果您未保存它,您必须先返回上一课向类添加方法,完成相应的步骤。 
- 在“文件”菜单上,指向“添加”,再单击“新建项目”。 
- 在“新建项目”对话框的“模板”窗格中,单击“Windows 窗体应用程序”。 
- 在“名称”框中键入 PersonsTest,再单击“确定”。 - 一个新的 Windows 窗体项目随即添加到“解决方案资源管理器”中,并出现一个新的窗体。 
- 在“解决方案资源管理器”中,选择 PersonsTest 项目,然后在“项目”菜单上单击“设为启动项目”。 
- 在“解决方案资源管理器”中,选择 PersonsTest 项目,然后在“项目”菜单上单击“添加引用”。 - 随即出现“添加引用”对话框。 
- 单击“项目”选项卡,再选择“Persons”,然后单击“确定”。 
- 双击窗体以打开代码编辑器,然后在紧接 Public Class Form1 行的下面输入以下声明。 - Dim person1 As New Persons.Persons- 这将声明 Persons 类的一个新实例。您可能会觉得奇怪,为什么要键入“Persons”两次。这是因为第一个实例是 Persons.vb 类模块,而第二个实例是该模块中的 Persons 类。 
- 在“文件”菜单上,单击“全部保存”。 
测试您的类
下一步是添加使用 Persons 类的用户界面和代码。您将添加供用户输入每个属性(只读的 Age 属性除外)的值的文本框、Age 字段的复选框,以及用于测试每个公共方法的按钮。
试一试!
测试类
- 在“解决方案资源管理器”中,选择“Form1”,然后在“视图”菜单上单击“设计器”。 
- 从“工具箱”中将四个 TextBox 控件、一个 CheckBox 控件和两个 Button 控件拖动到窗体上。 
- 选择第一个 Button 控件,然后在“属性”窗口中将其 Text 属性设置为 Update。 
- 选择第二个 Button 控件,然后在“属性”窗口中将其“Text”属性设置为 Full Name。 
- 双击第一个按钮(“更新”)以打开代码编辑器,然后在 Button1_Click 事件处理程序中添加下面的代码。 - With person1 .FirstName = Textbox1.Text .MiddleName = Textbox2.Text .LastName = Textbox3.Text .BirthYear = Textbox4.Text .Married = CheckBox1.Checked End With- 请注意,当您键入时,将会显示一个包含 Persons 类的成员的列表。由于它是作为一个引用添加的,IntelliSense 按照显示任何其他类那样显示您的类信息。 
- 在 Button2_Click 事件处理程序中,添加下面的代码。 - ' Test the FullName method. MsgBox(person1.FullName) ' test the Age property and CalcAge method. MsgBox(CStr(person1.Age) & " years old") ' Test the Married property. If person1.Married = True Then MsgBox(person1.FirstName & " is married") Else MsgBox(person1.FirstName & " is single") End If
- 按 F5 运行项目并显示窗体。 - 在第一个文本框中,输入一个人的名字。 
- 在第二个文本框中,输入此人的中间名。 
- 在第三个文本框中,输入此人的姓氏。 
- 在第四个文本框中,输入此人的四位数出生年份(如 1983)。 
- 如果已婚,请选中此复选框。 
 
- 单击“更新”按钮,设置该类的属性,然后单击“全名”按钮。 - 将显示三个消息框。这三个消息框分别显示此人的全名、年龄和婚姻状况。 
- 在“文件”菜单上,单击“全部保存”。 
测试重载方法
如果您已完成了可选课程详细了解:使用重载创建同一方法的多个版本,您可能还需要测试添加到 Persons 类中的重载方法。如果您还没有完成该课程,您现在可以返回到那一课完成;或者您也可以跳过以下步骤。
试一试!
测试重载方法
- 在“解决方案资源管理器”中,选择“Form1”,然后在“视图”菜单中单击“设计器”。 
- 将另外两个 Button 控件从“工具箱”中拖动到窗体上。 
- 选择第三个 Button 控件,然后在“属性”窗口中将它的 Text 属性设置为 With。 
- 选择第四个 Button 控件,然后在“属性”窗口中将它的 Text 属性设置为 Without。 
- 双击第一个按钮(“With”)以打开代码编辑器,然后在 Button3_Click 事件处理程序中输入下面的代码。 - MsgBox(person1.FirstName & " " & person1.MiddleInitial(True) & _ " " & person1.LastName)- 注意,当您键入时,将会显示一个包含 Persons 类的所有成员的列表。由于它是作为一个引用添加的,因此 IntelliSense 将按照显示任何其他类那样显示您的类信息。 
- 在 Button4_Click 事件处理程序中,添加下面的代码。 - MsgBox(person1.FirstName & " " & person1.MiddleInitial & _ " " & person1.LastName)
- 按 F5 运行项目并显示窗体。 - 在第一个文本框中键入一个人的名字。 
- 在第二个文本框中键入此人的中间名。 
- 在第三个文本框中键入此人的姓氏。 
- 在第四个文本框中,键入此人的四位数出生年份(如 1983)。 
- 如果已婚,请选中此复选框。 
 
- 单击“更新”按钮,设置该类的属性,然后单击“With”按钮。 - 将显示一个消息框,其中显示了此人的姓名(中间名首字母后有一个句点)。 
- 单击“Without”按钮。 - 将显示一个消息框,其中显示了此人的姓名(中间名首字母后没有句点)。 
- 在“文件”菜单上,单击“全部保存”。 
测试事件处理程序
如果您已完成可选课程详细了解:处理事件,您可能还需要测试添加到 Persons 类中的事件处理程序。如果您还没有完成该课程,则现在可以返回那一课并完成它;或者,您也可以跳过以下步骤。
试一试!
测试事件处理程序
- 在“解决方案资源管理器”中,选择“Form1”,然后在“视图”菜单上单击“代码”。 
- 在 person1 声明之前添加语句 WithEvents,如以下代码所示: - WithEvents person1 As New Persons.Persons
- 将以下过程添加到 Form1 中。此代码将检查计算的年龄并根据结果显示一条消息。 - Private Sub person1_AgeCalculated(ByVal Age As Integer) _ Handles person1.AgeCalculated If Age > 18 Then MsgBox("You have been over 18 for " & Age - 18 _ & " years.") Else MsgBox("You will be 18 in " & 18 - Age & " years") End If End Sub
- 按 F5 运行项目并显示窗体。 - 在第一个文本框中键入一个人的名字。 
- 在第二个文本框中键入此人的中间名。 
- 在第三个文本框中键入此人的姓氏。 
- 在第四个文本框中,键入此人的四位数出生年份(如 1983)。 
- 如果已婚,请选中此复选框。 
 
- 单击“更新”按钮,设置该类的属性,然后单击“全名”按钮。 - 将显示一个消息框,其中显示了此人的全名。如果此人超过 18 岁,则另一个消息框会显示有关此人超出 18 岁多长时间的信息。如果此人小于 18 岁,则一个消息框会显示有关此人到年满 18 岁还有多长时间的信息。然后,另一个消息框会显示此人的年龄。 
- 在“文件”菜单上,单击“全部保存”。 
后续步骤
在本课中,您学习了如何创建一个测试项目并使用它来测试类的属性、方法和事件。在下一课中,您将学习如何使用继承创建一个基于现有类的新类。
下一课:在现有类的基础上生成类:使用继承。