第六章 面向对象的程序设计
6.1 面向对象程序设计概述
1. 基本概念
面向对象的程序设计是通过对类、子类和对象等的设计来体现的,类是面向对象程序设计技术的核心。
类:定义了对象特征以及对象外观和行为的模板。
类的特征:
封装性:隐藏了类中对象的内部数据或操作细节,只看到外表信息。
继承性:
任何类都可以从其它已有的类中派生,新类保持了父类中的行为和属性,但增加了新的功能。体现了面向对象设计方法的共享机制。
多态性:相同的操作可作用于多种类型的对象上,并获得不同的结果。
抽象性:提取一个类或对象与众不同的特征,而不对该类或对象的所有信息进行处理。
基类:
系统本身提供的类称为基类。基类包括容器类和控件类。容器类是其他对象的集合,如表格、选项按钮组;控件类是单一的对象,不包含其他对象,如命令按钮、文本框。
子类:
以其他类定义为起点,对某一对象所建立的新类。新类将继承任何对父类所做的修改。
类库:
存储类的文件,每一个以可视方式设计的类都存储在一个类库中。类库文件的扩展名为 .VCX 。
对象:是类的一个实例,包括了数据和过程。具有所在类所定义的全部属性和方法。
VFP有两种对象:容器对象和控件对象。
属性:控件、字段或数据库对象的特性。
事件:由对象识别的一个动作。
方法:与对象相联系的由程序执行的一个处理过程,即处理事件的一组代码。
用户不可以为对象创建新的事件,但可以创建新的方法程序。
2. Visual FoxPro 基类
从下述 Visual FoxPro 基类中,可以派生子类或创建对象。
容器 | 命令组 | 控件 | 微调 | 标签 |
表单 | 命令按钮 | 复选框 | OLE 容器控制 | 线条 |
表单集 | 选项组 | 列表框 | OLE 绑定型控制 | 分隔符 # |
表格 | 选项按钮 # | 文本框 | 自定义 | 形状 |
标头 # | 页框 | 组合框 | 工具栏 | 图象 |
列 # | 页面 # | 编辑框 | 计时器 |
|
注:# 这些类是父容器的集成部分,在类设计器中不能子类化。
基类事件的最小集合
事件 | 说明 |
Init | 当对象创建时激活。 |
Destroy | 当对象从内存中释放时激活。 |
Error | 当类中的事件或方法过程中发生错误时激活。 |
基类属性的最小集合
属性 | 说明 |
Class | 该类属于何种类型。 |
BaseClass | 该类由何种基类派生而来,例如 Form、Commandbutton 或 Custom 等 |
ClassLibrary | 该类从属于哪种类库。 |
ParentClass | 对象所基于的类。若该类直接由 Visual FoxPro 基类派生而来,则 ParentClass 属性值与 BaseClass 属性值相同。 |
容器类
容器类可以包含其他对象,并且允许访问这些对象。每种容器类所能包含的对象如下。
容器 | 能包含的对象 |
命令按钮组 | 命令按钮 |
容器 | 任意控件 |
控件 | 任意控件 |
表单集 | 表单、工具栏 |
表单 | 页框、任意控件、容器或自定义对象 |
表格列 | 标头对象以及除表单、表单集、工具栏、计时器和其他列对象以外的任意对象 |
表格 | 表格列 |
选项按钮组 | 选项按钮 |
页框 | 页面 |
页面 | 任意控件、容器和自定义对象 |
工具栏 | 任意控件、页框和容器 |
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。