《面向对象的功能实现》参考资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立一个简单的类
首先:我们新建一个工程,然后在“工程浏览器”中按鼠标右键,在弹出菜单中选择“添加”,在添加菜单项的下级菜单中选择“添加类模块”。
在弹出的“添加类模块”对话框中双击“VB 类生成器”。
接着,我们会看见类生成器对话框。
现在我们点击工具栏上的第一个按钮,也就是添加新类的按钮。
这时,会出现类模块生成器对话框。
在这个对话框的属性选项卡上的“名称”(Name)文本框中输入cDeveloper——在这个文本框下面还有一个“基于”(Based On)文本框,这里我们先不去管它,以会我会讲到它的。
在这个对话框的“特性”选项卡中,有一个“描述”文本框,我们可以在里面输入对这个类的说明,比如:“这是一个程序员类”。
然后我们按确定按钮退出“类模块生成器”对话框。
再接着我们看看原来的“类生成器”对话框中左边的树型浏览器中在原来的工
程下面多了一个“cDeveloper”项。
选中这个项,点击对话框工具栏上的第三个按钮(添加属性),这时会弹出“属性生成器”对话框。
在这个对话框中的“属性”选项卡中的“名称”文本框中,我们输入:DeveloperName(这里有一点要注意,在“第一天”的例子中,我用的是Name 属性,为什么在这里要用DeveloperName呢?因为Name是VB的保留字,如果您在这里输入了Name,VB会提示您出错的)。
然后在“名称”文本框下面的“数据类型”下拉列表中选择”String”项(注意,一定要选择,如果您是输入的,因为大小写的原因,最后生成的代码可能会有问题)。
下面的“声明”栏中的选项先不要管它,以后再说。
在这个对话框中的“特性”选项卡中的“描述”文本框中,您可以输入对这个属性的说明,比如:“这是程序员的姓名”。
然后按确定按钮关闭这个“属性生成器”对话框。
进行了上面的操作后,我们会发现,在“类生成器”对话框右边的属性选项卡中多了一项我们才添加的这个DeveloperName属性(您的“类生成器”对话框右边的选项卡可能没有选中“属性”这一页)。
重复上面添加属性的操作,添加一个EmpolderTool属性,数据类型还是为
String。
到这时为止,我们的cDeveloper类就有了两个属性了。
下面我们要为它添加两个方法.Study和Empolder。
要添加这两个方法,我们要点击“类生成器”对话框上的每四个按钮(添加新方法)。
点击后会出现“方法生成器”对话框。
在这个对话框中的“属性”选项卡中的名称文本框中,我们输入“Study”(这个文本框下面的内容(包括参数)我们先不去管它)。
然后点确定关闭这个“方法生成器”对话框。
重复上面添加方法的操作,添加一个Empolder方法。
最后,我们就剩添加两个事件了。
让我们点击“类生成器”工具栏上的第五个按钮(添加新事件),我们就会看到“事件生成器”对话框。
我们在这个对话框中的名称文本框中输入“EmpolderSucceed”,下面的参数现在不用管它,以后介绍。
重复添加新事件的操作,在我们的类中添加“EmpolderLost”事件。
现在我们的工作完成了,只要选择类生成器的“文件”菜单中的更新工程,这个cDeveloper类和它的属性、方法和事件就被添加到我们的工程中了,我们可以从“工程”浏览框中看到这个新加入的cDeveloper类模块。
双击这个类模块,我们可以看见VB为这个类模块添加了下面这些代码:
[vb]Option Explicit
…local variable(s) to hold property value(s)
Private mvarDeveloperName As String …local copy
Private mvarEm polderTool As String …local copy
…To fire this event, use RaiseEvent with the following syntax:
…RaiseEvent EmpolderLost[(arg1, arg2, ... , argn)]
Public Event EmpolderLost()
…To fire this event, use RaiseEvent with the following syntax:
…RaiseEvent Empold erSucceed[(arg1, arg2, ... , argn)]
Public Event EmpolderSucceed()
Public Sub Empolder()
End Sub
Public Sub Study()
End Sub
Public Property Let EmpolderTool(ByVal vData As String)
…used when assigning a value to the property, on the left side of an assignment.…Syntax: X.EmpolderTool = 5
mvarEmpolderTool = vData
End Property
Public Property Get EmpolderTool() As String
…used when retrieving value of a property, on the right side of an assignment. …Syntax: Debug.Print X.EmpolderTool
EmpolderTool = mvarEmpolderTool
End Property
Public Property Let DeveloperName(ByVal vData As String)
…used when assigning a value to the property, on the left side of an assignment.…Syntax: X.DeveloperNa me = 5
mvarDeveloperName = vData
End Property
Public Property Get DeveloperName() As String
…used when retrieving value of a property, on the right side of an assignment.…Syntax: Debug.Print X.DeveloperName
DeveloperName = mvarDeveloperName
End Property
[/vb]
我使用的是英文版的VB6,所以如果您使用的是中文版的VB6,见到的代码中的注释部份和我的不同,您的是中文的注释。
第一句:Option Explicit。
你也可能没有,但最好请您加上,这是强制声明的选项,有了这一句之后,您的所有的变量都必须显示地声明后才能使用,这能一定程度上保证您的代码的正确性。
您如果觉得跟着我用类生成器生成这个类太繁锁,没关系,您只要象添加窗体一样新添加一个类,并双击打开它,然后把上面的这段代码Copy到它里面也可以,
反正以后我会对这些生成的代码进行说明的,当您熟悉这些代码的涵义后,用代码而不用类生成器有时反而更简单。
对于这个生成的类,现在还只能对他的属性赋值,他还什么也不能做,这并不奇怪,因为我们还要添加代码告诉他该怎么做,该怎么响应事件。