第11章面向对象的程序设计 学习要点 1、对象、属性事件及方法程序 2、对象引用规则 3、类与对象、基类、子类、用户定义类、 容器类和控件类 4、类的定义和编辑
第11章 面向对象的程序设计 学习要点 1、 对象、属性事件及方法程序 2、 对象引用规则 3、 类与对象、基类、子类、用户定义类、 容器类和控件类 4、 类的定义和编辑
第11章面向对象的程序设计 111面向对象的基本概念 112对象引用 113类的基本概念 114定义类 习题及参考答案
第11章 面向对象的程序设计 11.1 面向对象的基本概念 11.2 对象引用 11.3 类的基本概念 11.4 定义类 习题及参考答案
第11章面向对象的程序设计 Visual| FoxPro60在支持传统的结构化程序设计方法的 基础上,全面引入面向对象的程序设计( Object-Oriented Programming,OoP)的方法。用户通过面向对象的方法, 可以设计出更加美观的应用程序界面,开发出真正的关系数据 库应用程序。面向对象应用程序设计根本地改变了早期 FoxPro 应用程序面向过程的开发方式,将重点放在了对象之间的联系 上,而不是具体实现的细节。面向对象程序设计通过代码重用 和继承的方式,使用户在设计程序时不再做大量的重复劳动, 且将对象的细节隐藏起来,让用户将注意力集中在对象与系统 其它部分的联系上,这是结构化程序设计方法所不能做到的
第11章 面向对象的程序设计 Visual FoxPro 6.0在支持传统的结构化程序设计方法的 基础上,全面引入面向对象的程序设计(Object-Oriented Programming,OOP)的方法。用户通过面向对象的方法, 可以设计出更加美观的应用程序界面,开发出真正的关系数据 库应用程序。面向对象应用程序设计根本地改变了早期FoxPro 应用程序面向过程的开发方式,将重点放在了对象之间的联系 上,而不是具体实现的细节。面向对象程序设计通过代码重用 和继承的方式,使用户在设计程序时不再做大量的重复劳动, 且将对象的细节隐藏起来,让用户将注意力集中在对象与系统 其它部分的联系上,这是结构化程序设计方法所不能做到的
111面向对象的基本概念 在面向对象的程序设计中,对象是构成程序的基本单位和 运行实体。本节将介绍对象和它的属性、事件、方法程序等概 念和一些基本操作。 111.1对象 对象( Object)就是一个实体,任何对象都具有自己的 特征和行为。在面向对象程序设计中,所有事物都可以被抽象 为对象,例如表单上的文本框是对象,表单本身也是一个对象。 在 Visual foxpro60中,又将对象分为控件和容器两种。 (1)控件:是表单上显示数据和执行操作的基本对象。在 Visua| FoxPro60中,控件有标签、文本框、命令按钮等 (2)容器:是一种可以容纳其它对象的对象。在 Visua FoxPro60中包含了很多容器对象,如表单集、表单、页框、 命令按钮组等
11.1 面向对象的基本概念 在面向对象的程序设计中,对象是构成程序的基本单位和 运行实体。本节将介绍对象和它的属性、事件、方法程序等概 念和一些基本操作。 11.1.1 对象 对象(Object)就是一个实体,任何对象都具有自己的 特征和行为。在面向对象程序设计中,所有事物都可以被抽象 为对象,例如表单上的文本框是对象,表单本身也是一个对象。 在Visual FoxPro 6.0中,又将对象分为控件和容器两种。 ⑴ 控件:是表单上显示数据和执行操作的基本对象。在 Visual FoxPro 6.0中,控件有标签、文本框、命令按钮等。 ⑵ 容器:是一种可以容纳其它对象的对象。在Visual FoxPro 6.0中包含了很多容器对象,如表单集、表单、页框、 命令按钮组等
11.12属性 对象的属性即对象的特征、性质,例如当描述 个命令按钮时,可以用它所在的位置、尺寸大小、颜 色及它上面显示的文字的字体、字号等特征来形容, 这些特征都可用属性来表示 常用的对象属性如表11-1。 不同的对象所具有的属性是不相同的,这也可从 属性的定义中体现出来。但是一些对象会有一些共性
11.1.2 属性 对象的属性即对象的特征、性质,例如当描述一 个命令按钮时,可以用它所在的位置、尺寸大小、颜 色及它上面显示的文字的字体、字号等特征来形容, 这些特征都可用属性来表示。 常用的对象属性如表11-1。 不同的对象所具有的属性是不相同的,这也可从 属性的定义中体现出来。但是一些对象会有一些共性
11.12属性 表11-1常用属性介绍 属性 说明 应用于 Caption 设置对象的标题 表单、标签、命 令按钮等 Name 设置对象的名字 任何对象 value 没置控件当前状态 本 表框 Forecolor设置对象中的前景色表单、标签、文本框等 Backcolor设置对象内部的背景色表单、标签、文本框等 BackStyle设置对象背景是否透明 单、文本框、图像等 AlwaysonTop是否处于其他窗口 表单
11.1.2 属性 表11-1 常用属性介绍 属 性 说 明 应 用 于 Caption 设置对象的标题 表单、标签、命 令按钮等 Name 设置对象的名字 任何对象 Value 设置控件当前状态 文本框、列表框等 ForeColor 设置对象中的前景色 表单、标签、文本框等 BackColor 设置对象内部的背景色 表单、标签、文本框等 BackStyle 设置对象背景是否透明 表单、文本框、图像等 AlwaysOnTop 是否处于其他窗口之上 表单
11.12属性 Auto Center 是否在主窗口内自动居中 表单 Scalemode 用于设置坐标单位 ‖表单 Closable 标题栏中关闭按钮是否有效表单 Controlbox是否取消标题栏所有按钮表单、工具栏 MaxButton 是否有最大化按钮 表单 MinButton 是否有最小化按钮 表单 Movable 运行时表单能否移动 表单 Window state设置运行时是最大化或最小化表单 Auto CloseTables表单释放时是否关闭表或视图, 默认为T 数据环境 AutoOpen Tables表单加载时是否打开表或视图, 默认为 数据环境
11.1.2 属性 AutoCenter 是否在主窗口内自动居中 表单 ScaleMode 用于设置坐标单位 表单 Closable 标题栏中关闭按钮是否有效 表单 Controlbox 是否取消标题栏所有按钮 表单、工具栏 MaxButton 是否有最大化按钮 表单 MinButton 是否有最小化按钮 表单 Movable 运行时表单能否移动 表单 WindowState 设置运行时是最大化或最小化 表单 AutoCloseTables 表单释放时是否关闭表或视图, 默认为.T. 数据环境 AutoOpenTables 表单加载时是否打开表或视图, 默认为.T. 数据环境
11.13事件 事件( Event)是指可能会发生在对象上的事情,也即对对 象所做的操作(或者系统对某个对象的操作),如按钮被单击, 对象被拖动、被改变大小、被双击等。一个对象可以有多个事 件,但是每个事件都是由系统预先规定的。一个事件对应于 个程序,即事件过程。 1事件驱动工作方式 事件一旦被触发(即操作发生),系统马上就去执行与该 事件对应的过程。等事件过程执行完毕后,系统又处于等待某 事件发生的状态,这种程序执行方式明显地不同于面向过程的 程序设计,即应用程序的事件驱动工作方式,表11-2列出了部 分常见的事件
11.1.3 事件 事件(Event)是指可能会发生在对象上的事情,也即对对 象所做的操作(或者系统对某个对象的操作),如按钮被单击, 对象被拖动、被改变大小、被双击等。一个对象可以有多个事 件,但是每个事件都是由系统预先规定的。一个事件对应于一 个程序,即事件过程。 1.事件驱动工作方式 事件一旦被触发(即操作发生),系统马上就去执行与该 事件对应的过程。等事件过程执行完毕后,系统又处于等待某 事件发生的状态,这种程序执行方式明显地不同于面向过程的 程序设计,即应用程序的事件驱动工作方式,表11-2列出了部 分常见的事件
11.13事件 表11-2 Visual Foxpro60系统常见事件 事件触发时机 事件 触发时机 Load创建对象前 MouseUp 释放鼠标键时 Init 创建对象时 Mouse Down按下鼠标键时 Activate对象激活时 Keypress按下并释放某键盘键时 GotFocus对象获得焦点时 Valid 对象失去焦点前 cick单击鼠标左键时 LostFocus对象失去焦点时 Dblclick双击鼠标左键时 Unload 释放对象时 Destroy释放一个对象时 Interactive Change改变控件的值时 Resize调整对象大小时 Scrolled 在表格中移动滚动条时
11.1.3 事件 表11-2 Visual FoxPro 6.0系统常见事件 事 件 触发时机 事 件 触发时机 Load 创建对象前 MouseUp 释放鼠标键时 Init 创建对象时 MouseDown 按下鼠标键时 Activate 对象激活时 KeyPress 按下并释放某键盘键时 GotFocus对象获得焦点时 Valid 对象失去焦点前 Click 单击鼠标左键时 LostFocus 对象失去焦点时 DblClick 双击鼠标左键时 Unload 释放对象时 Destroy 释放一个对象时 InteractiveChange 改变控件的值时 Resize 调整对象大小时 Scrolled 在表格中移动滚动条时
11.13事件 从表11-2可知,事件包括事件过程和事件 触发方式两个方面。事件过程的代码应该事先 编写好。事件触发方式可分为3种: ●用户触发:如单击命令按钮事件。 系统触发:如计时器事件,将会自动按设定 的时间间隔发生。 ●代码触发:如用代码来调用事件过程
11.1.3 事件 从表11-2可知,事件包括事件过程和事件 触发方式两个方面。事件过程的代码应该事先 编写好。事件触发方式可分为3种: ● 用户触发:如单击命令按钮事件。 ● 系统触发:如计时器事件,将会自动按设定 的时间间隔发生。 ● 代码触发:如用代码来调用事件过程