对程序员和编程爱好者来说,VB中类的技术是学习中的一个难点,在大型软件的开发过程中, 模块(Moudle) 、控件(Activeocx) 、链接库( Active dll) 和类( Classmoudle) 构成了系统化、高效化的软件工程,而类的技术是控件和链接库技术的基础,因此掌握类的理论和编程方法是非常有意义的。
(一)类的基本定义和应用概述; 类是包含了方法、属性、数据成员的高级代码模块,它既在模块的范畴之内,又是一个没有图 形界面的Activeocx,程序员可以象使用控件一样使用它,但却不能看到它,值得注意的是,类是不能继承的。 类能够使我们高效的完成对某一个或者某几个特定的对象的复杂操作,对象的动作就是类的方法,对象的属性就是类的属性过程。相对而言,如果编程的对象是一组事物,那么,我们采用标准模块的方式是非常合适的,在下列两种情况下,应该使用类进行代码处理: (1)创建大量性质相近的对象; ( 2)提高代码的封装性。 类的创建非常简单, 在进行代码编写的时候,在 “工程”菜单中选择“ 添加类模块” 项目,就可以添 加一个空白的类。 类文件一般以.cls 作为扩展名保存。 (二)类的方法的实现; 类的方法类似于动态链接库的接口函数,它能够接受其他窗体代码的指定类型参数,并且传递 到类中。一般来说类的方法是能够指定是否有返回值的。它在类中通常是一个public过程。请看下面的代码示例,它使一个密码框拒绝非字母的输入: (1 )类cls的代码; Option Explicit '变量检查 Private WithEvents mytxt As TextBox '本类中的方法接受和控制一个text密码框 Dim isNUM As Boolean '类的模块级变量 Public Sub Attach(itTEXT As TextBox) '接受外部变量到mytxt中 Set mytxt = itTEXT End Sub Private Sub mytxt_KeyUp(KeyCode As Integer,Shift As Integer) isNUM = (KeyCode >= 65) And (KeyCode <= 90) ' 测试密码框的键盘输入是否是英文字母 If isNUM = False Then Beep mytxt.Text = "" ' 如果输入不是英文字母则响铃并且清空密码框内容 MsgBox"非法字符输入! " End If Debug.Print mytxt.Text ' 调试输出密码框内容 End Sub '类的代码结束 ( 2)类的引用; 已经编写完成的类可以经过两种格式进行引用, 第一种方式:Private(public或者 Dim) myCLS (指定的类名)As Newcls(编写完成的类名); 第二种方式较多用于程序编写风格较“老” 的程序员: 首先在窗体代码中进行模块级声明 ――DimmyCLS As cls, 然后在具体代码过程中进行具体定义 ――Setmycls = Newcls。 这两种方式的效率和代码的简洁性方面可能会有所差别,但在笔者的编程实践中,并没有什么特别的感觉,不过我较多使用第一种方式,因为它书写起来更加方便。 另外,在代码结束的时候,使用SetmyCLS = Nothing来取消类的资源占用是一种非常好的编程习惯。 |
|