1 / 14
文档名称:

VB类模块和标准模块使用和区别.doc

格式:doc   大小:42KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

VB类模块和标准模块使用和区别.doc

上传人:1314042**** 2021/2/24 文件大小:42 KB

下载得到文件列表

VB类模块和标准模块使用和区别.doc

文档介绍

文档介绍:类模块和标准模块的不同点在于存储数据方法的不同。标准模块的数据只有一个备份。这意味着标准模块中一个公共变量的值改变以后,在后面的程序中再读取该变量时,它将得到同一个值。而类模块的数据,是相对于类实例(也就是,由类创建的每一对象)而独立存在的。
同样的,标准模块中的数据在程序作用域内存在,也就是说,它存在于程序的存活期中;而类实例中的数据只存在于对象的存活期,它随对象的创建而创建,随对象的撤消而消失。
最后,当变量在标准模块中声明为Public时,则它在工程中任何地方都是可见的;而类模块中的Public变量,只有当对象变量含有对某一类实例的引用时才能访问。
上面的比较,同样适用于标准模块和类模块中的公共过程,用下面的例子可以说明。新建一个工程,并在“工程”菜单中个添加一个标准模块和一个类模块,然后运行以下的代码:
把下面的代码放在   Class1   中:
'下面是   Class1   对象的一个属性。
Public   Comment   As   String
'下面是   Class1   对象的一个方法。
Public   Sub   ShowComment()
      MsgBox   Comment,   ,   gstrVisibleEverywhere
End   Sub
把下面的代码放在   Module1   中:
'标准模块中的代码是全局的。
Public   gstrVisibleEverywhere   As   String
Public   Sub   CallableAnywhere(ByVal   c1   As   Class1)
      '下行改变一个全局变量,这是一个Class1实例的(属性)
      '只有传递给该过程的个别对象才受到影
       c1Comment   =   "Touched   by   a   global   function "
End   Sub
把两个命令按钮放在   Form1   上,并在   Form1   中添加以下的代码:
Private   mc1First   As   Class1
Private   mc1Second   As   Class1
Private   Sub   Form_Load()
      '创建两个   Class1   类的实例。
      Set   mc1First   =   New   Class1
      Set   mc1Second   =   New   Class1
      gstrVisibleEverywhere   =   "Global   string   data "
End   Sub
Private   Sub   Command1_Click()
      Call   CallableAnywhere(mc1First)
      mc1FirstShowComment
End   Sub
Private   Sub   Command2_Click()
      mc
1SecondShowComment
End   Sub
按F5键,运行该工程。当Form1加载时,它创建两个 Class1类实例,每个实例有自己的数据。同时,Form1设置了下面全局变量gstrVisibleEverywhere的值。
按下Command1,调用全局过程并传递引用给第一个Class1对象。全局过程设置Comment属性,然后Command1调用ShowComment方法显示该对象的数据。
正如图1所示,结果信息框演示了全局过程CallableAnywhere如何设置对象的Comment属性,而且全局字符串在Class1内部是可见的。
图1第一个Class1对象的信息框
按下Command2,调用第二个Class1类实例的ShowComment方法。
如图   97   所示,两个对象都访问了全局字符串变量;然而,第二个对象的Comment属性是空的,因为对全局过程CallableAnywhere的调用只改变第一个对象的Comment属性。
图2第二个Class1对象的信息框
重点:要避免类的代码依赖于全局变量,也就是标准模块中的公共变量。一个类的许多实例可以同时存在,所有这些对象在程序中共享全局数据。
在类模块代码中使用全局变量也违背了面

最近更新

蛋宝宝中班市公开课获奖教案省名师优质课赛课.. 4页

蚂蚁搬豆小班音乐市公开课获奖教案省名师优质.. 5页

葵花籽的市公开课获奖教案省名师优质课赛课一.. 4页

菜园里泥土中市公开课获奖教案省名师优质课赛.. 5页

蓝色世界牛奶日宣传PPT模板 24页

荡桥市公开课获奖教案省名师优质课赛课一等奖.. 3页

花钟市公开课获奖教案省名师优质课赛课一等奖.. 5页

当代医学人文教育的挑战与发展 27页

芭蕾基本功市公开课获奖教案省名师优质课赛课.. 5页

节日棋大班市公开课获奖教案省名师优质课赛课.. 4页

船市公开课获奖教案省名师优质课赛课一等奖教.. 4页

脚内颠球市公开课获奖教案省名师优质课赛课一.. 3页

肺炎防控市公开课获奖教案省名师优质课赛课一.. 4页

考试作文市公开课获奖教案省名师优质课赛课一.. 5页

弘扬航天精神铸就中国航天的坚不可摧 26页

老师对市公开课获奖教案省名师优质课赛课一等.. 3页

美甲店结构概述市公开课获奖教案省名师优质课.. 4页

美术市公开课获奖教案省名师优质课赛课一等奖.. 4页

美术市公开课获奖教案省名师优质课赛课一等奖.. 5页

美术市公开课获奖教案省名师优质课赛课一等奖.. 4页

美术冰糖葫芦市公开课获奖教案省名师优质课赛.. 4页

黄牛养殖项目商业计划书 8页

美化居室市公开课获奖教案省名师优质课赛课一.. 5页

人寿三定方案 3页

编程新手教学市公开课获奖教案省名师优质课赛.. 6页

鲜花小礼品商业计划书 8页

引导医学生积极参与科学研究与创新实践 30页

魅力城项目商业计划书 7页

绘画涂色市公开课获奖教案省名师优质课赛课一.. 4页

绘画市公开课获奖教案省名师优质课赛课一等奖.. 5页