一、什么是类?
用面向对象的编程思想来看,类就是存储数据同时给一组相关代码赋予协调功能的方式。类是面向对象编程的核心。
VB最为人垢病的是它的面向对象特性。实际上VB是一种基于对象的开发工具。在VB中
建立的类是支持继承的。下面是范例:
首先建立一个新工程,然后添加一个新的类模块(Class Module),类名称设定为BaseClass。
然后在BaseClass中加入以下代码:
Public Sub BaseSub() '虚拟特性,BaseSub在子类中实现
End Sub
然后添加两个类模块,类名称分别设定为ImpClass以及ImpClass2,然后在类的代码窗口中写入:
Implements BaseClass '继承特性
上面这行代码说明类ImpClass以及ImpClass2实现类BaseClass。
在ImpClass窗口中加入以下代码:
Private Sub BaseClass_BaseSub() '实现基类中的BaseSub方法
    MsgBox "Hello. This is Imp. inherited from BaseClass"
End Sub
在ImpClass2中加入以下代码:
Private Sub BaseClass_BaseSub()
    MsgBox "Hello. This is Imp2. inherited from BaseClass"
End Sub
完成了上面的类代码后,打开Form1,在上面添加一个CommandButton,在按钮的Click事件中
写入以下代码:
Dim xImp As New ImpClass
Dim xIMp2 As New ImpClass2
Dim xBase As BaseClass
Set xBase = xImp '多态特性
xBase.BaseSub
Set xBase = xIMp2
xBase.BaseSub
Set xBase = Nothing
Set xImp = Nothing
Set xIMp2 = Nothing
运行程序,点击CommandButton,程序会先后弹出消息框,显示在ImpClass以及ImpClass2中
设定的消息。
从上面的代码中可以看到VB中是如何实现面向对象的特性:继承、虚拟以及多态的。只是同
诸如Java、C + + 、Object Pascal不同,VB将很多实现的细节隐藏了起来。
其它相关文章:
类是包含了方法、属性、数据成员的高级代码模块,它既在模块的范畴之内,又是一个没有图形界面的Active ocx,程序员可以象使用控件一样使用它,但却不能看到它,值得注意的是,类是不能继承的。
类能够使我们高效的完成对某一个或者某几个特定的对象的复杂操作,对象的动作就是类的方法,对象的属性就是类的属性过程。相对而言,如果编程的对象是一组事物,那么,我们采用标准模块的方式是非常合适的,在下列两种情况下,应该使用类进行代码处理:
  (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 New cls(编写完成的类名);第二种方式较多用于程序编写风格较“老”的程序员:首先在窗体代码中进行模块级声明——Dim myCLS As cls,然后在具体代码过程中进行具体定义—— Set mycls = New cls。这两种方式的效率和代码的简洁性方面可能会有所差别,但在笔者的编程实践中,并没有什么特别的感觉,不过我较多使用第一种方式,因为它书写起来更加方便。另外,在代码结束的时候,使用 Set myCLS = Nothing来取消类的资源占用是一种非常好的编程习惯。
在窗体form1中(窗体有一个密码框控件text1,passworldchar = "*")  添加以下代码:
Option Explicit
Private myCLS As New cl      '引用cls
Private Sub Form_Load()
    myCLS.Attach Text1         '启动类
End Sub
Private Sub Form_Unload(Cancel As Integer)    '在代码结束时记得释放资源
    Set myCLS = Nothing
    End
End Sub


VB部分相关文章推荐:


☆VB 读写TXT文本文件函数

☆VB 提取TextBox 文本框中指定一行字符串

VB 获取汉字拼音的首字母

☆VB 汉字字符串转换成拼音

☆VB判断指定名字的进程是否存在函数

☆VB 两种方法实现热键

☆VB 使用SendMessage枚举文件与目录

☆VB 二进制数组与十六进制字符串相互转换

☆VB 二进制数据读写实例

☆VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转

☆VB 判断是否文本文件

☆VB 读取UTF-8编码文件函数

☆VB 按指定编码格式写入文本文件

☆VB UTF-8 URL编码函数

☆VB 实现UTF-8 与GB2312互转

☆VB 设置ListView中指定一行的背景颜色

☆VB SendMessage向其他程序窗口发送字符串消息实例

☆VB Listview导出到CSV文件函数

☆vb卸载所有窗体

☆VB中Null, Empty, Nothing, and vbNullString的区别

☆利用API函数计算程序运行时间VB

☆获取快捷方式原文件路径vb路径

☆利用VB函数Dir()实现递归搜索目录

☆VB数组的清除和重新定义

☆用RtlAdjustPrivilege来调整进程权限(VB6.0代码)

☆获取对象的接口信息(方法/属性/事件)(VB6代码)

☆VB6中给数组赋值的限制

☆[vb]一些窗口消息的详解

☆VB直接播放EXE文件中的声音文件

☆VB中利用CopyMemory使用指针

☆VB读写注册表的三种方法

☆[VB]SaveSetting 语句 和 DeleteSetting 语句

☆VB APP对象属性一览表 + 灵活使用VB的APP对象

☆[vb]SendMessageA函数

☆使用VB绘制抛物线动画曲线

☆关于vb中的容器

☆[vb]利用WScript.Shell对象隐藏cmd命令行运行

☆浅析VB For Each.Next语句

☆VB中窗体模块、标准模块、类模块的区别

☆引用 VB类模块

☆VB中什么是类,类模块有什么作用

☆VB SendKeys 语句

☆VB 全局热键

☆用VB轻松调用其他程序

☆vb读取txt文件到textbox

☆如何去优化你的VB程序3

☆如何去优化你的VB程序2

☆如何去优化你的VB程序1

☆[VB]在状态栏中显示帮助信息

☆[VB]把屏幕保存为图像

☆Mp3Play.ocx控件让音乐之声响起来


更多精彩>>>

VB中什么是类,类模块有什么作用相关推荐

  1. php instr(),vb中instr函数怎么用

    vb中instr函数怎么用 instr函数的作用是从起始位置开始向后找到被搜索的字符串第一次出现的位置,如果找的到就返回其在原字符串中的位置,否则就返回0. 语法:instr( string1, st ...

  2. VB中窗体模块、标准模块、类模块的区别

    VB的代码存储在模块中.在VB中提供了三种类型的模块:窗体模块.标准模块和类模块. 简单的应用程序可以只有一个窗体,所用的程序都驻留在窗体模块中,而当应用程序庞大复杂时,就要另外附加窗体.最终可能有几 ...

  3. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  4. python modbus类封装_Python 中引入一个文件,模块的概念

    Python 提供了强大的模块支持,主要体现在,不仅 Python 标准库中包含了大量的模块(称为标准模块),还有大量的第三方模块,开发者自己也可以开发自定义模块. 通过这些强大的模块可以极大地提高开 ...

  5. python中的模块和类_Python模块与类

    你混淆了两个概念.python"模块"是一个包含可以导入的python代码的文件.python"类"是可以在模块中定义的东西.在 在您的示例中,apple和{} ...

  6. android studio 导入模块SDK 以及该模块中继承application的类与原工程继承application的类存在冲突 解决方法

    android studio 导入模块SDK 以及该模块中继承application的类与原工程继承application的类存在冲突 解决方法 导入某修改后的海康视频SDK(老师给的),并修改相关文 ...

  7. VC++中使用使用winnet类获取网页内容

    2005-09-01 VC++中使用使用winnet类获取网页内容 - [VC专栏] 微软提供的Winnet类是一个应用层的网络通信组件, 它可以使你的应用程序很容易的实现http.ftp.gophe ...

  8. Qt中的自定义模型类

    文章目录 1 Qt中的通用模型类 1.1 Qt中的通用模型类 1.2 Qt中的变体类型QVariant 2 自定义模型类 2.1 自定义模型类设计分析 2.2 自定义模型类数据层.数据表示层.数据组织 ...

  9. python中简述对象和类的关系_Python学习笔记(七)对象和类

    什么是对象 Python中所有的数据都是以对象的形式存在,无论是简单的数字类型还是复杂的代码模块.在Python中,当我们想要创建属于自己的对象或者修改已有对象的行为时,才需要关注对象的内部实现细节. ...

最新文章

  1. JAVA配置注解方式搭建简单的SpringMVC前后台交互系统
  2. python 列表 元组 字符串
  3. cinder与ceph的区别_分布式存储基础、Ceph、cinder及华为软件定义的存储方案 -
  4. 接口响应时组装响应json_企业实战之spring项目《接口响应体格式统一封装》
  5. boost::multi_array模块实现index_range 的测试
  6. asp.net的资料
  7. 计算机在娱乐中的应用有哪些,多媒体技术在娱乐方面的应用
  8. java executor 异步_Java并发编程11-异步执行框架Executor
  9. 删除 java代码中所有的注释
  10. 对于(不是特别不合理)的指摘、的对应方式(学会调整,不要一根筋)
  11. CToolTipCtrl使用详细解说
  12. (译).NET4.X并行任务Task需要释放吗?
  13. 2d开源游戏引擎_前5名:构建出色的CLI,开源2D游戏引擎等
  14. 部分UCI数据集分享
  15. WhatsApp群发系统-SendWS拓客系统功能后台介绍(五):WhatsApp筛号群发,群发超链
  16. 五分钟学会前端打包工具webpack
  17. 汤臣倍健营销云与畅捷通T+系统对接方案
  18. 内部存储器——①静态存储器
  19. uniapp微信小程序实现连接低功耗蓝牙打印功能
  20. 全国统筹明年启动,养老金发放将迎来哪些变化?

热门文章

  1. 直接拿来用!盘点四款优秀的开源协作文本编辑器
  2. 千亿级照片,毫秒间匹配最佳结果,微软开源 Bing 搜索背后的关键算法!
  3. 开了个会:破局企业云通信,华为加速 Buff 开发者!
  4. 用Python搭建“冲顶大会”外挂,王思聪们还舍得撒币吗?
  5. 苹果发布最新版本系统,弥补iOS 11耗电快等问题
  6. 导入文件按钮_如何将PPT软件功能配置导入另一台电脑
  7. java 启动xms_关于java:启动JVM时-Xms和-Xmx参数是什么?
  8. 50个经典jquery实例_【电气知识】从原理图到程序的4个经典实例详解
  9. h5 html被缓存,【Web前端问题】html5离线缓存,不能被缓存问题
  10. uboot加载linux内核加载那些内容,几个地址参数及uboot加载启动内核过程的理解