《数据库应用——visualfoxpro程序设计教学课件作者黄培周第八章 面向对象程序设计》由会员分享,可在线阅读,更多相关《数据库应用——visualfoxpro程序设计教学课件作者黄培周第八章 面向对象程序设计(26页珍藏版)》请在金锄头文库上搜索。
1、第八章 面向对象程序设计,第一节 面向对象程序设计基本概念 第二节 表单设计 第三节 表单控件设计 第四节 类 第五节 例题精解,面向对象程序设计基本概念,一、面向对象程序设计的概念 VFP不仅提供面向对象的程序设计方式,同时还保留面向过程的程序设计方式。 传统的面向过程的程序设计就是用程序设计语言的语句实现算法。在程序编写过程中,要花费大量的时间用于创建应用程序的界面。 面向对象的程序设计方式是以对象为中心,将数据和程序捆绑在一起,封装在对象中,,下一页,返回,二、对象(Object) 客观世界中独立存在的、能够区分的实体都可以看作对象。对象可以是具体的事物,也可以指抽象的概念。 1、控件对
2、象 控件对象是不能容纳其他对象的对象。例如,命令按钮、文本框、标签等。 2、容器对象 容器对象是可以容纳其他对象的对象。例如,表单、命令按钮组、选项按钮组等。,面向对象程序设计基本概念,上一页,下一页,返回,三、属性(Property) 属性用于描述对象的特征和状态。例如,命令按钮的位置、大小、形状、颜色等都是命令按钮的属性。对象创建之后,VFP就赋予该对象各属性的默认值,用户可以修改对象属性的默认值,还可以添加对象的属性。 四、方法(Method) 方法是对象能够执行的操作,是内置的通用过程。方法所包含的程序对用户来说是不可见的。用户只需了解方法的名称和功能,遵循规定的格式调用方法,就能够完
3、成相应的操作。例如,要清除表单上的对象,可调用表单的Cls方法来实现,代码为ThisForm.Cls。,面向对象程序设计基本概念,上一页,下一页,返回,每个对象拥有各自的方法集合,且允许扩展对象的方法集合。对已有的方法,用户可以添加新的代码以扩充方法的功能,但VFP不允许修改和删除已有方法。 五、事件(Event) 事件是能被对象识别和响应的、预先定义的动作。每个对象都拥有一组固定的、由VFP预定义的事件集合,用户不能扩充对象的事件集合。事件的代码通常需要用户来编写。 事件可由用户引发或系统引发。例如,单击命令按钮,则引发了命令按钮的Click事件;而计时器的Timer事件则由系统引发。,面向
4、对象程序设计基本概念,上一页,返回,表单设计,一、 “表单设计器” “表单设计器”用于创建新表单或修改已有的表单。“表单设计器”窗口打开后,一般会同时激活“表单设计器”工具栏、“表单控件”工具栏和“属性”窗口。 二、数据环境 数据环境指表单使用的数据源,数据源可以是表、视图和表间关系。 数据环境也是对象,其对象名为DataEnviroment,表在数据环境中也是对象,其名称为Cursor1、,下一页,返回,Cursor2,表间关系Relation1也是对象,数据环境中的对象也具有属性。 数据环境一旦建立,当打开或运行表单时,数据环境所定义的表或视图即自动打开;当关闭表单时,数据环境中的表或视图
5、也随之关闭。 三、设置对象的属性 对象创建后,各属性具有默认值。属性的默认值可以在属性窗口中修改,也可以通过编写事件代码重新设置。必要时还可以添加对象自定义属性。,表单设计,上一页,下一页,返回,四、对象属性与方法的引用 1、对象的层次关系 VFP的对象分为容器对象和控件对象。容器对象中可包含容器对象和控件对象,这样就形成了容器对象嵌套层次关系,如果要引用层次结构中的某个对象,那么必须指明该对象在层次结构中的位置,即对象的地址。 2、引用关键字 3、绝对引用 绝对引用是从包含该对象的最外层容器对象开始,逐层描述到所引用的对象。,表单设计,上一页,下一页,返回,格式:表单集名.表单名.容器对象名
6、.对象名.对象的属性或方法 4、相对引用 相对引用是从当前容器对象的位置开始,向下逐层描述到所引用的对象。 格式:引用关键字.容器对象名.对象名.对象的属性或方法 5、编程调用对象方法程序 VFP的方法程序有的带有参数,有的不带参数;有的有返回值,有的没有。调用对象方法程序的格式如下。,表单设计,上一页,下一页,返回,格式:对象名.方法程序名(参数1, 参数2, ) 五、使用“表单向导”创建表单 1、打开“向导选取”对话框的三种方法 1)在“项目管理器”中打开“表单向导” “项目管理器”“表单”选项“新建”按钮“新建表单”对话框“表单向导”按钮“向导选取”对话框,表单设计,上一页,下一页,返回
7、,2)使用“工具”菜单打开“表单向导” “工具”菜单“向导”命令“表单”命令“向导选取”对话框 3)使用“新建”按钮打开“表单向导” “新建”按钮“新建”对话框“表单”选项“向导”按钮“向导选取”对话框 2、表单向导分类 1)单表“表单向导” 2)“一对多表单向导”,表单设计,上一页,下一页,返回,3、打开“表单向导” 1)在“向导选取”对话框中,选择“表单向导”或“一对多表单向导”; 2)单击“确定”按钮。,表单设计,上一页,返回,表单控件设计,一、表单控件分类 VFP表单控件工具栏上有21个基类控件,按功能可分为以下5类: (1)输出类:标签、图像、线条、形状。 (2)输入类:文本框、编辑
8、框、微调控件、列表框、组合框。 (3)控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器。 (4)容器类:表格、页框、Contain容器、表单集。 (5)连接类:ActiveX控件、ActiveX绑定控件、超级链接控件。,下一页,返回,二、表单控件的缺省名称,上一页,下一页,返回,三、RowSourceType与RowSource属性,上一页,下一页,返回,三、RowSourceType与RowSource属性,上一页,返回,类,一、类的基本概念 二、自定义类的创建和使用,下一页,返回,例题精解,【例81】下面关于属性、方法和事件的叙述中,错误的是( )。 A)对象的事件集合是固定的,不
9、可扩充的 B)用户可以自定义对象的属性 C)对象的属性可以在属性窗口中修改,也可以通过代码重新设置。 D)用户可以对对象的方法代码进行修改、删除和扩充 解:在VFP中,事件是由系统预定义的,事件集合(名称和数目)是固定的,不能扩充。属性用于描述对象的特征和状态,可以修改和添加。对象的方法代码对于用户是不可见的,用户不能对已有的代码进行修改和删除,但可以添加代码,以扩展该方法的功能。 答:81 D,下一页,返回,【例82】下面关于事件的叙述中,错误的是( )。 A)事件是VFP预先定义的动作 B)事件可由用户、系统或代码触发 C)用户的一个动作可能触发一个或多个事件 D)事件可以由系统预先定义,
10、也可以由用户自定义 解:事件是能被对象识别和响应的、预先定义的动作。每个对象都拥有一组固定的、由VFP预定义的事件集合,事件集合不能扩充。 事件可由用户动作触发,例如单击对象时触发;事件也可由系统触发,例如计时器对象的Timer事件就是由系统触发;事件也可由代码触发,例如使用Thisform.Refresh代码刷新表单时,触发了表单的Refresh(刷新)事件。 用户的一个动作可能触发对象的一个或多个事件,例如单击表单,则触发表单的Click、MouseDown、MouseUp事件。 答:82 D,上一页,下一页,返回,【例83】下面关于数据环境和数据环境中的表的叙述中,正确的是( )。 A)
11、数据环境是对象,数据环境中的表不是对象 B)数据环境不是对象,数据环境中的关联是对象 C)数据环境与其中的表、视图、关联都是对象 D)数据环境和关联都不是对象 解:数据环境指表单使用的数据源。表单的数据源可以是表、视图和表间联系。 数据环境也是对象,其对象名为DataEnviroment,表在数据环境中也是对象,其名称为Cursor1、Cursor2,数据环境与其中的表、视图、关联(Relation1)都是对象。 答:83 C,上一页,下一页,返回,【例84】下面关于表单数据环境的叙述中,正确的是( )。 A)表单的数据环境可以是表文件 B)表单的数据环境可以是视图 C)表单的数据环境可以是查
12、询文件 D)表单的数据环境可以是数据库文件 解:数据环境可以是表和视图,但视图存在于数据库中,不能单独存在,所以,在表单的数据环境中没有视图。查询文件和数据库文件不能作为表单的数据环境。 答:84 A,上一页,下一页,返回,【例85】“表单设计器”工具栏的功能是( )。 A)用于调整表单上对象的位置 B)用于创建表单控件 C)显示或隐藏表单设计器有关的工具栏、数据环境设计器、属性窗口、代码窗口等 D)用于设置对象的颜色 解:“表单设计器”工具栏用于显示或隐藏表单设计器有关的工具栏、数据环境设计器、属性窗口、代码窗口等。“表单设计器”工具栏的子栏:“表单控件”工具栏用于创建对象,“布局”工具栏用
13、于调整表单上对象的位置,“调色板”工具栏用于设置对象的颜色。 答:85 C,上一页,下一页,返回,【例86】假定表单中只包含有一个命令按钮,那么在关闭表单时,下面有关事件引发次序的叙述中,正确的是( )。 A)先表单的Destroy事件,然后表单的Unload事件,最后命令按钮的Unload事件 B)先命令按钮的Destroy事件,然后表单的Destroy事件,最后表单的Unload事件 C)先表单的Destroy事件,然后命令按钮的Destroy事件,最后表单的Unload事件 D)先表单的Unload事件,然后命令按钮的Destroy事件,最后表单的Destroy事件 解:关闭表单时,先释
14、放表单,再释放表单上的控件,再触发表单上的Unload事件,最后释放数据环境及其中的表与关系。 答:86 C,上一页,下一页,返回,【例87】以下关于对象焦点的叙述中,正确的是( )。 A)在表单上,某个时刻只能有一个对象获得焦点 B)在表单上,某个时刻可以有多个对象获得焦点 C)表单上的对象都可以获得焦点 D)要使表单上的对象获得焦点,只有通过选中它来实现 解:表单可以包含多个对象,但某个时刻只能有一个对象获得焦点,而且并非所有的对象都可以获得焦点,例如,Enable属性为.F.的对象就不能获得焦点。对象获得焦点可以通过选中它或者调用Setfocus方法来实现。 答:87 A,上一页,下一页
15、,返回,【例88】为了刷新表单,可调用表单的( )方法。 A)Refresh B)Release C)Cls D)Clear 解:Refresh方法是刷新表单,Release方法是释放表单,Cls方法是清除表单上的对象,Clear命令是清除VFP主窗口的内容。 答:88 A,上一页,下一页,返回,【例89】以下关于表单上对象定位方法的叙述中,正确的是( )。 A)可以用鼠标对表单上的对象任意定位 B)可以用键盘上的箭头键对表单上的对象任意定位 C)可以用“布局”工具栏对表单上的对象任意定位 D)可以设置对象的Width和Height属性对表单上的对象任意定位 解:使用鼠标、键盘上的箭头键或者设置对象的Left和Top属性都可以对表单上的对象任意定位。直接使用鼠标对表单上的对象定位时,对象移动的幅度为半个或一个网格;加按Ctrl键,可实现鼠标对表单上的对象的任意定位。使用键盘上的箭头键可以对表单上选定的对象任意定位。Width和Height属性用于设置对象的大小而非位置。 答:89 B,上一页,返回,