




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第11章 面向对象的程序设计 学习要点1、 对象、属性事件及方法程序2、 对象引用规则3、 类与对象、基类、子类、用户定义类、容器类和控件类4、 类的定义和编辑第11章 面向对象的程序设计11.1 面向对象的基本概念11.2 对象引用11.3 类的基本概念11.4 定义类习题及参考答案第11章 面向对象的程序设计 Visual FoxPro 6.0在支持传统的结构化程序设计方法的基础上,全面引入面向对象的程序设计(Object-Oriented Programming,OOP)的方法。用户通过面向对象的方法,可以设计出更加美观的应用程序界面,开发出真正的关系数据库应用程序。面向对象应用程序设计
2、根本地改变了早期FoxPro应用程序面向过程的开发方式,将重点放在了对象之间的联系上,而不是具体实现的细节。面向对象程序设计通过代码重用和继承的方式,使用户在设计程序时不再做大量的重复劳动,且将对象的细节隐藏起来,让用户将注意力集中在对象与系统其它部分的联系上,这是结构化程序设计方法所不能做到的。11.1 面向对象的基本概念 在面向对象的程序设计中,对象是构成程序的基本单位和运行实体。本节将介绍对象和它的属性、事件、方法程序等概念和一些基本操作。 11.1.1 对象 对象(Object)就是一个实体,任何对象都具有自己的特征和行为。在面向对象程序设计中,所有事物都可以被抽象为对象,例如表单上的
3、文本框是对象,表单本身也是一个对象。在Visual FoxPro 6.0中,又将对象分为控件和容器两种。 控件:是表单上显示数据和执行操作的基本对象。在Visual FoxPro 6.0中,控件有标签、文本框、命令按钮等。 容器:是一种可以容纳其它对象的对象。在Visual FoxPro 6.0中包含了很多容器对象,如表单集、表单、页框、命令按钮组等。11.1.2 属性 对象的属性即对象的特征、性质,例如当描述一个命令按钮时,可以用它所在的位置、尺寸大小、颜色及它上面显示的文字的字体、字号等特征来形容,这些特征都可用属性来表示。 常用的对象属性如表11-1。 不同的对象所具有的属性是不相同的,
4、这也可从属性的定义中体现出来。但是一些对象会有一些共性。11.1.2 属性表11-1 常用属性介绍属 性 说 明 应 用 于Caption 设置对象的标题 表单、标签、命令按钮等Name 设置对象的名字 任何对象Value 设置控件当前状态 文本框、列表框等ForeColor设置对象中的前景色 表单、标签、文本框等BackColor设置对象内部的背景色 表单、标签、文本框等BackStyle设置对象背景是否透明 表单、文本框、图像等AlwaysOnTop是否处于其他窗口之上 表单11.1.2 属性AutoCenter 是否在主窗口内自动居中 表单ScaleMode 用于设置坐标单位 表单Clo
5、sable 标题栏中关闭按钮是否有效 表单Controlbox 是否取消标题栏所有按钮 表单、工具栏MaxButton 是否有最大化按钮 表单MinButton 是否有最小化按钮 表单Movable 运行时表单能否移动 表单WindowState 设置运行时是最大化或最小化 表单AutoCloseTables 表单释放时是否关闭表或视图, 默认为.T. 数据环境AutoOpenTables 表单加载时是否打开表或视图, 默认为.T. 数据环境11.1.3 事件 事件(Event)是指可能会发生在对象上的事情,也即对对象所做的操作(或者系统对某个对象的操作),如按钮被单击,对象被拖动、被改变大小
6、、被双击等。一个对象可以有多个事件,但是每个事件都是由系统预先规定的。一个事件对应于一个程序,即事件过程。 1.事件驱动工作方式 事件一旦被触发(即操作发生),系统马上就去执行与该事件对应的过程。等事件过程执行完毕后,系统又处于等待某事件发生的状态,这种程序执行方式明显地不同于面向过程的程序设计,即应用程序的事件驱动工作方式,表11-2列出了部分常见的事件。11.1.3 事件表11-2 Visual FoxPro 6.0系统常见事件事 件 触发时机 事 件 触发时机Load 创建对象前 MouseUp 释放鼠标键时Init 创建对象时 MouseDown 按下鼠标键时Activate 对象激活
7、时 KeyPress 按下并释放某键盘键时GotFocus对象获得焦点时 Valid 对象失去焦点前Click 单击鼠标左键时 LostFocus 对象失去焦点时DblClick 双击鼠标左键时 Unload 释放对象时Destroy 释放一个对象时 InteractiveChange 改变控件的值时Resize 调整对象大小时 Scrolled 在表格中移动滚动条时11.1.3 事件 从表11-2可知,事件包括事件过程和事件触发方式两个方面。事件过程的代码应该事先编写好。事件触发方式可分为3种: 用户触发:如单击命令按钮事件。 系统触发:如计时器事件,将会自动按设定的时间间隔发生。 代码触发
8、:如用代码来调用事件过程。11.1.3 事件 为事件编写代码 编写代码先要打开代码编辑窗口,打开某对象代码编辑窗口的方法有3种。 双击该对象。 选择对象的快捷菜单中的“代码”选项。 选择显示菜单的“代码”选项。 代码编辑窗口中包含两个组合框和一个列表框。对象组合框用来重新确定对象,过程组合框用来确定所要的事件(或方法程序),代码则在列表框中输入。11.1.4 方法程序 方法程序又简称为方法,是指对象所固有完成某种任务的功能。 Cls方法 功能:清除表单中的图形和文本。 语法:Object.Cls 说明:Cls清除运行期间图形和打印语句生成的文本和图形。Cls方法不影响设计期间放置在表单上的背景
9、位图。Cls方法将CurrentX和CurrentY属性重新设置为0。11.1.4 方法程序 Refresh方法 功能:重画表单或控件,并刷新所有值,或者刷新一个项目的显示。 语法:Form.Object.Refresh 说明:一般地,画表单或控件是在没有事件发生时自动处理的。需要立刻更新表单或控件时可使用Refresh方法。若要在加载另一个表单的同时显示某个表单,或更新控件的内容时,Refresh方法有效。11.1.4 方法程序 SetFocus方法 功能:为一个控件指定焦点。 语法:Control.SetFocus 说明:如果控件的Enabled或Visible属性设置为.F.,或者控件的
10、When事件返回.F.,则不能给一个控件指定焦点;如果Enabled或Visible属性已设置为.F.,则控件在使用SetFocus方法接受焦点之前,必须首先把它们设置为.T.。11.1.4 方法程序 Release方法 功能:从内存中释放表单集或表单。 语法:Object.Release 说明:当用DO FORM命令创建表单集或表单,并且不存在可引用该表单集或表单的变量时,Release方法很有效。可以使用Screen对象的Forms集合找到表单集或表单,并调用其Release方法。可以使用Screen对象的表单集合来查找表单或表单集,并且调用Release方法。应用于表单、表单集、_SCR
11、EEN。11.2 对象引用 在面向对象的程序设计中要常常引用对象,或引用对象的属性、事件与调用方法程序,本节将介绍对象引用的格式,并通过几个例子来说明。 11.2.1 对象引用规则 在程序设计中,引用对象时要遵循一定的规则,主要表现在以下4个方面。 1.在程序设计中一般用以下关键字开头 ThisFormSet & 表示当前表单集 ThisForm & 表示当前表单 This & 表示当前对象11.2.1 对象引用规则 2.引用格式 一般在引用关键字后跟一个点号,表示从属关系,再写出被引用对象或者对象的属性、事件或方法程序。例如: This.Caption=“教师情况一览表” & 为本表单标题属
12、性赋值 ThisForm.Refresh & 调用本表单Refresh方法程序11.2.1 对象引用规则 3.允许多级引用 在应用程序中,多个对象之间有多级的从属关系,允许多级引用,但要逐级引用。下面是几种常用的引用格式。 ThisFormSet.PropertyName | Event | Method | ObjectName ThisForm.PropertyName | Event | Method | ObjectName11.2.1 对象引用规则 This.PropertyName | Event | Method | ObjectName ObjectName.PropertyN
13、ame | Event | Method 其中PropertyName表示属性名,Event表示事件,Method表示方法程序,ObjectName表示对象名。11.2.1 对象引用规则 4.父调用 父调用即控件引用包含它的容器控件。 格式为:Control.Parent 其中Control表示控件,Parent表示包含该控件的容器。11.2.2 编程方式设置属性值 属性除可在属性窗口设置外,也可通过编程方式来设置。 格式为:ObjectName.Property=Setting 其中Setting指要设置的属性值,例如前面引用格式中所举的例子。 此外,用户还可以使用RGB函数来返回一种颜色。
14、 格式为:RGB(nRedValue, nGreenValue, nBlueValue) 其中,参数nRedValue,nGreenValue,nBlueValue分别指定红、绿、蓝色成份的深度。大小范围是0255。11.2.3 方法程序的调用 方法程序通常在事件代码中调用,调用时必须遵循对象引用规则。例如ThisForm.Release,表示引用本表单的Release方法,从内存释放表单。11.3 类的基本概念 类在程序设计中被经常用到,本节将介绍有关类的一些基本概念和表现特征。 11.3.1 类的概念 类是面向对象程序设计中一个重要的概念,包括基类、子类、用户自定义类、容器类、库类等。 1
15、.类与对象 在面向对象程序设计中,类与对象都是应用程序的组装模块,它和对象既有区别又存在联系。11.3.1 类的概念 类和对象关系密切,但并不相同。类包含了有关对象的特征和行为信息,它是对象的蓝图和框架。类是定义了对象特征以及对象外观和行为的模板。例如在表单控件工具栏中,每个按钮都代表一个类,用其中某个按钮在表单上创建的一个控件就是一个对象。11.3.1 类的概念 类和对象具有以下关系: 类是对象的定义。类定义并提供了对象具有的属性、事件和方法程序。 对象通过类而产生。 对象是类的一个实例。11.3.1 类的概念 2.基类 基类是Visual FoxPro 6.0预先定义的类,在“新建类”对话
16、框的“派生于”下拉列表框中,包含了全部基类,如图11-1所示。如“表单”、“组合框”等。初始的表单控件工具栏中包含的类(如“文本框”、“命令按钮”、“标签”等)也是基类。基类可作为用户自定义类的基础。用户可从基类来创建新类,并增添自己需要的新功能。11.3.1 类的概念图11-1 “新建类”对话框11.3.1 类的概念 3.子类 子类是指以某个类的定义为基础创建的新类。子类所基于的类称为父类。例如若要从基类创建出新类时,那么基类就是父类,新建类就是子类。 子类将继承父类的全部特征,包括对父类所做的任何修改。 4.用户定义类 用户可以从基类派生出子类,即用户定义类;Visual FoxPro 6
17、.0还允许从用户定义类派生出子类。所以说用户自定义类可以是子类,也可以是父类。 可以为用户定义类设置属性、编写代码与方法程序,也可创建新的属性和方法程序。用户也可以将自己定义的类添加到表单控件工具栏中。11.3.1 类的概念 5.容器类和控件类 类也可以分为容器类和控件类两种,用户可以从基类派生出容器类,例如从Form类可派生出表单类。 6.类库 类库可用来存储以可视方式设计的类,其文件扩展名为.vcx。一个类库通常可容纳多个子类,这些子类允许由不同的基类派生。11.3.2 类的特征 类作为一个模板,所有对象的属性、事件、方法程序在定义类时被指定。此外,类还有如下特征,这些特征可提高代码的可重
18、用性和易维护性。 1.封装特征 封装特征指包含并隐藏对象的信息,如内部数据结构、对象的方法程序和属性代码。封装隐藏了不必要的复杂性,隐藏对象信息具有以下优点: 有利于对复杂对象的管理,使用户集中精力来使用对象的特性。 有利于程序的安全性,防止代码不慎受到破坏。11.3.2 类的特征 2.子类特征 子类可以具有其父类的全部功能和特点,但也可以增加自己的属性和方法,使它具有与父类不同的特殊性,使得用户在程序设计时更得心应手,设计出满足实际情况的类。 通过设计一个适合应用程序的子类,并在多处创建它的实例,就可以使代码得到重复利用,因此定义子类是减少程序代码的一个方法。11.3.2 类的特征 3.继承
19、性特征 类的继承性可以从下述的几个方面来理解: 对象能自动继承创建它的类的功能。 子类能自动继承父类的功能。 对一个类的改动能自动反映到它的所有子类中。 继承性体现在软件中,若发现类中有一个小错误,用户不必逐一修改子类的代码,只需要在父类中改动一处,然后这个变动将体现在全部子类中。所以说继承性不仅节省了用户的时间与精力,还减少了维护代码的难度,它是合理地进行代码维护的重要措施。11.4 定义类 Visual FoxPro 6.0最强大的功能之一就是支持创建在应用程序中可以重复使用的类,用户定义的类能添加到表单控件工具栏中。用户定义类通常有以下功能。 封装通用功能:为通用功能创建控件类,可以将它
20、们的实例添加到表单中。例如移动记录指针的命令按钮类、表单关闭按钮类、帮助按钮类等。 赋予应用程序统一的外观和风格:例如创建了具有独特外观的文本框类,便可在应用程序所有需要文本框的地方都使用这个类。11.4.1 创建用户定义类 下面通过一个例子来介绍创建用户定义类的步骤。 例11-1 使用类设计器创建一个用户定义类,类名为“记录指针移动类”,基类为命令按钮组,存储到d:vfp6commandgroup1.vcx类库文件中。 选择“新建”,或者在“项目管理器”窗口的“类”选项卡中单击“新建”按钮,在弹出的“新建”对话框中选择“类”单选按钮;然后单击新文件按钮,打开 “新建类”对话框。如图11-2所
21、示。11.4.1 创建用户定义类图11-2 “新建类”对话框11.4.1 创建用户定义类 指定新建类所需的类库、基类与类名。其中,“类名”文本框用于指定类名,新生成的类是基类的子类;“派生于”下拉列表框用于指定新生成类的基类;“存储于”文本框用于指定新类库名或已有类库的名字,类库名可包含路径,若未指出路径表示使用默认路径。 指定各项内容后,单击“确认”按钮,打开如图11-3所示的“类设计器”窗口。11.4.1 创建用户定义类图11-3 类设计器窗口11.4.1 创建用户定义类 通过表单的属性窗口设置其按钮个数及相应标题,并设置事件代码。设计好的命令按钮组类如图11-4所示。图11-4 “记录指
22、针移动类”窗口 11.4.2 将类添加到工具栏用户定义类完成后,即可以将其添加到表单控件工具栏中,然后通过使用该工具栏中的“查看类”按钮来打开定义的类。 例11-2 将创建的“记录指针移动类”添加到表单控件工具栏中,并通过它在表单上创建一个记录指针移动命令按钮组。 选择“新建”,在打开的对话框中选择“表单”选项,然后单击“新建”按钮,新建一个表单。图11-5 新建的表单设计窗口11.4.2 将类添加到工具栏 在“表单控件”工具栏上单击(查看类)按钮,在弹出的菜单中选择“添加”,在打开的“打开”对话框中指定要添加的可视类库的文件名。 图11-6 在“打开”对话框中指定类文件名11.4.2 将类添
23、加到工具栏 单击“打开”按钮,则打开的表单控件工具栏如图11-7所示。 新添加的Commandgroup类图11-7 新添加类按钮11.4.2 将类添加到工具栏 单击新添加类按钮选中它,在表单中单击添加命令按钮组,结果如图11-8所示。图11-8 添加命令按钮组的表单11.4.3 类的编辑 在Visual FoxPro 6.0中,用户不仅可以修改用户定义类,而且可以删除类库中的类,或删除类库。 1.修改用户定义类 若要为用户定义类设置属性,编写事件代码或方法程序代码,或者是创建新的属性或方法程序,都必须打开类设计器来实现。要打开类设计器,只要打开一个可视类库,并选择其中的一个类即可。 例11-
24、3 修改例11-1所设计的命令按钮组类,要求为表单定义的基于该类的每个按钮均有提示功能。11.4.3 类的编辑 选择“打开”,在打开的对话框的文件类型列表框中选择“可视类库”(*.vcx),从中选择存在的Commandgroup1类库名,单击“确认”按钮。 在打开的“打开”对话框中右边的列表框中选择要修改的类名。图11-9 选择要修改的类名11.4.3 类的编辑 单击“打开”按钮,打开“类设计器”窗口,选择要设置提示内容的按钮,打开“属性”窗口,将其ToolTipText(显示提示内容)属性设置成所要显示的文本内容。 用同样方法设置其它按钮的提示文本后,关闭“类设计器”窗口,选择保存修改即可。11.4.3 类的编辑 图11-10 设置按钮的提示文本11.4.3 类的编辑 2.删除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 若尔盖县2025年数学三下期末质量检测模拟试题含解析
- 食品供应合同范本
- 天津市红桥教育中学心2025年第二学期初三期初考试语文试题含解析
- 中建-工程分包合同
- 辽宁省朝阳市建平县2019-2020学年八年级上学期期末物理试题【含答案】
- 书店员工合同协议书
- 古诗阅读渔歌子赏析课件
- 发热症状评估考试试题及答案
- 高中信息技术 《For…Next语句》教学设计 沪教版选修1
- 七年级地理下册 7.5 北极地区和南极地区教学设计 (新版)湘教版
- GB/T 1041-2008塑料压缩性能的测定
- 迪普科技DPtechDPX8000深度业务交换网关主打胶片XXX课件
- TCAQ 10201-2020 质量管理小组活动准则培训
- 环境行政法律责任2
- 文件丢失怎么办-完整精讲版课件
- DB37∕T 5164-2020 建筑施工现场管理标准
- 赞美诗歌1050首下载
- 上海市长宁区2022年高考英语一模试卷(含答案)
- 全国中小学美术教师基本功比赛理论知识测试试卷
- 土方工程量计算与平衡调配
- 16起触电事故案例分析
评论
0/150
提交评论