可视化程序设计第8章 变量与过程的作用范围.ppt
《可视化程序设计第8章 变量与过程的作用范围.ppt》由会员分享,可在线阅读,更多相关《可视化程序设计第8章 变量与过程的作用范围.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 变量与过程的作用范围8.18.1 代码模块的概念代码模块的概念 8.1.1 8.1.1 窗体模块窗体模块窗体模块窗体模块 8.1.2 8.1.2 标准模块标准模块标准模块标准模块 8.1.3 8.1.3 类模块类模块类模块类模块8.2 8.2 8.2 8.2 变量的作用范围变量的作用范围变量的作用范围变量的作用范围 8.2.1 8.2.1 8.2.1 8.2.1 过程级变量过程级变量过程级变量过程级变量 8.2.2 8.2.2 模块级变量模块级变量模块级变量模块级变量 8.2.3 8.2.3 变量的生存期变量的生存期变量的生存期变量的生存期 8.3 8.3 8.3 8.3 过程的作用范
2、围过程的作用范围过程的作用范围过程的作用范围 8.3.1 8.3.1 模块级过程模块级过程模块级过程模块级过程 8.3.2 8.3.2 全局级过程全局级过程全局级过程全局级过程 8.3.3 8.3.3 调用其他模块中的过程调用其他模块中的过程调用其他模块中的过程调用其他模块中的过程8.4 高级变量 8.4.1 使用多个同名的变量使用多个同名的变量 8.4.2 公有变量与局部变量的比较公有变量与局部变量的比较 8.4.3 阴影窗体属性和控件阴影窗体属性和控件 8.4.4 使用同名的变量和过程使用同名的变量和过程8.5 用户定义类型 8.5.1 用户定义类型的概念用户定义类型的概念 8.5.2 创
3、建用户定义类型创建用户定义类型 8.5.3 建立和使用用户定义类型变量建立和使用用户定义类型变量 8.5.4 用户定义类型数组用户定义类型数组 8.5.5 程序举例程序举例习题八习题八8.1 代码模块的概念VB应用程序(通常称为工程)的应用程序(通常称为工程)的组织结构,它由窗体模块、标准模组织结构,它由窗体模块、标准模块和类模块组成。块和类模块组成。VB程序代码就程序代码就保存在窗体模块文件(保存在窗体模块文件(.Frm)、)、标准模块文件(标准模块文件(.Bas)或类模块)或类模块文件(文件(.Cls)中。它们形成了工)中。它们形成了工程的一种模块层次结构,如图所示。程的一种模块层次结构,
4、如图所示。8.1.1 窗体模块窗体模块(文件扩展名为文件扩展名为.FRM)窗窗体体模模块块可可以以包包含含处处理理事事件件的的过过程程、通通用用过过程程以以及及变变量量、常常数数和和外外部部过过程程的的窗窗体体级级声声明明。如如果果要要在在文文本本编编辑辑器器中中观观察察窗窗体体模模块块,则则还还会会看看到到窗窗体体及及其其控控件件的的描描述述,包包括括它它们们的的属属性性设设置置值值。写写入入窗窗体体模模块块的的代代码码是是该该窗窗体体所所属属的的具具体体应应用用程程序序专专用用的;它也可以引用该应用程序内的其它窗体或对象。的;它也可以引用该应用程序内的其它窗体或对象。8.1.2 标准模块标
5、准模块(文件扩展名为文件扩展名为BAS)它它们们可可以以包包含含变变量量、常常数数、类类型型、外外部部过过程程和和全全局局过过程程的的全全局局(在在整整个个应应用用程程序序范范围围内内有有效效的的)声声明明或或模模块块级级声声明明。写写入入标标准准模模块块的的代代码码不不必必绑绑在在特特定定的的应应用用程程序序上上,则则在在许许多多不不同同的的应应用程序中可以重用标准模块。用程序中可以重用标准模块。8.1.3 类模块类模块(文件扩展名为文件扩展名为.CLS)在在 Visual Basic 中中类类模模块块是是面面向向对对象象编编程程的的基基础础。可可在在类类模模块块中中编编写写代代码码建建立立
6、新新对对象象。这这些些新新对对象象可可以以包包含含自自定定义义的的属属性性和和方方法法。实实际际上上,窗窗体体正正是是这这样样一一种种类类模模块块,在在其其上上可可安安放放控控件,可显示窗体窗口。件,可显示窗体窗口。8.2 变量的作用域变量的作用域概述:概述:在在VB中中,由由于于可可以以在在过过程程中中和和模模块块中中声声明明变变量量,根根据据定定义变量的位置和定义变量的语句不同,变量可以分为:义变量的位置和定义变量的语句不同,变量可以分为:局部变量(过程级变量)局部变量(过程级变量)窗窗体体/模模块块级级变变量量(私私有有的的模模块块级级变变量量,能能被被本本模模块块的的所所有有过程和函数
7、使用)过程和函数使用)全局级变量(公有的模块级变量)。全局级变量(公有的模块级变量)。8.2.1 过程级变量过程级变量-局部变量局部变量局部变量:在过程内用声明的变量,只能在本过程中使用。在局部变量:在过程内用声明的变量,只能在本过程中使用。在过程内部使用过程内部使用 Dim 或者或者 Static 关键字来声明的变量,只在声关键字来声明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别的过程不可明它们的过程中才能被访问或改变该变量的值,别的过程不可访问。所以可以在不同的过程中声明相同名字的局部变量而互访问。所以可以在不同的过程中声明相同名字的局部变量而互不影响。不影响。例:例:Pri
8、vate Sub Form_Load()Dim n%n=10End SubPrivate Sub From_Click()Dim n%Print“n=“;nEnd Sub程序运行后单击窗体,其输出结果是什么?程序运行后单击窗体,其输出结果是什么?【例例8-1】过程级局部变量示例。过程级局部变量示例。Private Sub Form_Activate()Dim a As Integer,b As Integer,c As Integer 过程级局部变量过程级局部变量 a=5:b=3 Print Print Tab(15);a;Tab(25);b;Tab(35);c=a*b Print 调用调用p
9、rod前前;Tab(14);a;Tab(24);b;Tab(34);c Call prod Print 调用调用prod后后;Tab(14);a;Tab(24);b;Tab(34);c Print Print 调用调用sum前前;Tab(14);a;Tab(24);b;Tab(34);c Call sum Print 调用调用sum后后;Tab(14);a;Tab(24);b;Tab(34);cEnd SubSub prod()通用过程通用过程 Dim a As Integer,b As Integer,c As Integer 过程级局部变量过程级局部变量 c=a*b Print prod子
10、程序子程序;Tab(14);a;Tab(24);b;Tab(34);cEnd SubSub sum()通用过程通用过程 Dim a As Integer,b As Integer,c As Integer 过程级局部变量过程级局部变量 c=a+b Print sum子程序子程序;Tab(14);a;Tab(24);b;Tab(34);cEnd Sub8.2.2 模块级变量模块级变量 1.私私有有的的模模块块级级变变量量:在在“通通用用声声明明”段段中中用用Dim语语句句或或用用Private语语句句声声明明的的变变量量,可可被被本本窗窗体体/模模块块的的任任何何过过程程访问。但其他模块却不能访
11、问该变量。访问。但其他模块却不能访问该变量。例如:在例如:在“通用声明通用声明”段声明如下变量段声明如下变量:Private s As String Dim a As Integer2.公有的模块级变量公有的模块级变量公有的模块级变量也称全局变量,在窗体模块或标准模块的公有的模块级变量也称全局变量,在窗体模块或标准模块的顶部的顶部的“通用通用”声明段用声明段用Public关键字声明,它的作用范围关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问。是整个应用程序,即可被本应用程序的任何过程或函数访问。【例8-2】公有的模块级全局变量示例。Public a As Inte
12、ger,b As Integer,c As Integer 写写在在“(通通用用)”的的“(声声明明)”中中Private Sub Form_Activate()事件过程事件过程 a=5:b=3 Print Tab(15);a;Tab(25);b;Tab(35);c=a*b Print 调用调用prod前前;Tab(14);a;Tab(24);b;Tab(34);c Call prod Print 调用调用prod后后;Tab(14);a;Tab(24);b;Tab(34);c Print Print Tab(15);a;Tab(25);b;Tab(35);c=a+b Print 调用调用su
13、m前前;Tab(14);a;Tab(24);b;Tab(34);c Call sum Print 调用调用sum后后;Tab(14);a;Tab(24);b;Tab(34);cEnd SubSub prod()通用过程 c=a*b Print prod子程序;Tab(14);a;Tab(24);b;Tab(34);cEnd SubSub sum()通用过程 c=a+b Print prod子程序;Tab(14);a;Tab(24);b;Tab(34);cEnd Sub8.2.3 变量的生存期变量的生存期除作用域之外,变量还有存活期,在这一期间变量能够保持它除作用域之外,变量还有存活期,在这一期
14、间变量能够保持它们的值。在应用程序的存活期内一直保持模块级变量和全局变们的值。在应用程序的存活期内一直保持模块级变量和全局变量的值。但是,对于量的值。但是,对于Dim声明的局部变量仅当过程执行期间存声明的局部变量仅当过程执行期间存在,当一个过程执行完毕,它的局部变量的值就已经不存在,在,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。的所有局部变量将重新初始化。局部变量的存活期由其定义的关键词来决定。局部变量的存活期由其定义的关键词来决定。局部变量声明:局部
15、变量声明:Dim声明:声明:随过程的调用而分配存贮单元,变量的初始化;过随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。程体结束,变量的内容自动消失,存贮单元释放。Static声明声明,每次调用过程,变量保持上次调用结束时的值。,每次调用过程,变量保持上次调用结束时的值。声明形式:声明形式:Static 变量名变量名 AS 类型类型 Static Function 函数过程名函数过程名(参数列表参数列表)As 类型类型 Static Sub 子过程名子过程名(参数列表参数列表)注意:注意:过程名前加过程名前加Static,表示该过程内的局部变量都是静,表
16、示该过程内的局部变量都是静态变量。态变量。例例 下面程序说明了下面程序说明了Static关键字的作用。关键字的作用。Private Sub Form_Click()Dim i%,isum%For i=1 To 5isum=sum(i)Print isum,Next i End Sub Private Function sum(n As Integer)Dim j As Integer j=j+n sum=jEnd Function1 2 3 4 5Static j As Integer 结果如何?结果如何?8.3 过程的作用范围过程的作用范围通用子过程和函数过程既可写在窗体模块中也可写在标准模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化程序设计第8章 变量与过程的作用范围 可视化 程序设计 变量 过程 作用 范围
限制150内