第8章面向对象程序基础 结构化程序设计是基于求解过程来组织程序流程,在 这种程序中,数据和施加于数据上的操作是分别设计 的,以对数据进行操作的过程作为程序的主体。而面 向对象的程序设计则以对象作为程序的主体。对象是 数据和施加在数据上的操作的封装体。封装在对象中 的程序通过“消息”来驱动运行。在图形用户界面中 消息经常通过鼠标和键盘的某种操作来产生和传递。 本章介绍面向对象程序设计的一些基本概念:如对象、 类、子类、继承、属性、方法、事件等等
第8章 面向对象程序基础 结构化程序设计是基于求解过程来组织程序流程,在 这种程序中,数据和施加于数据上的操作是分别设计 的,以对数据进行操作的过程作为程序的主体。而面 向对象的程序设计则以对象作为程序的主体。对象是 数据和施加在数据上的操作的封装体。封装在对象中 的程序通过“消息”来驱动运行。在图形用户界面中, 消息经常通过鼠标和键盘的某种操作来产生和传递。 本章介绍面向对象程序设计的一些基本概念:如对象、 类、子类、继承、属性、方法、事件等等
8面向对象的概念 82VFP对面向对象方法的支持 83面向对象的程序设计方法
• 8.1 面向对象的概念 • 8.2 VFP 对面向对象方法的支持 • 8.3 面向对象的程序设计方法
81面向对象的概念 8.1.1对象与类 在面向对象程序设计中,对象(0 bject) 是组成程序的基本构件 在这种方法中,设计人员直接用一种称 之为“对象”的程序构件来描述客观问 题中“实体”,并用“对象”间的消息 来模拟实体间的联系,用“类”来模拟 这些实体间的共性
8.1 面向对象的概念 • 8.1.1 对象与类 • 在面向对象程序设计中,对象(Object) 是组成程序的基本构件 • 在这种方法中,设计人员直接用一种称 之为“对象”的程序构件来描述客观问 题中“实体”,并用“对象”间的消息 来模拟实体间的联系,用“类”来模拟 这些实体间的共性
1、对象( Object) 在OOP方法中,作为程序基本构件的 对象”是对现实世界中实体的一种模 拟工具 OOP方法用一组称为“属性”的数据模 拟所描述实体的静态特征、而用一组称 为“方法程序”的程序过程模拟该实体 对一些“事件”的反映 ·把模拟一个实体的“属性”数据和“方 法程序”通过一定的形式进行“封装” 就建立起了一个OOP方法中的对象
1、对象(Object) • 在OOP方法中,作为程序基本构件的 “对象”是对现实世界中实体的一种模 拟工具 • OOP方法用一组称为“属性”的数据模 拟所描述实体的静态特征、而用一组称 为“方法程序”的程序过程模拟该实体 对一些“事件” 的反映 • 把模拟一个实体的“属性”数据和“方 法程序”通过一定的形式进行“封装” 就建立起了一个OOP方法中的对象
2、类(Clas) 类”是具有相同属性特征和行为规则的 多个“对象”的一种统一描述 “类”是对现实世界的一种高度抽象与 概括,而“对象”则是“类”的一个实 例 “对象”一定具有其属“类”的共同特 征与行为规则,当然一个“对象”还可 以具有其属“类”未曾规定的特征属性 和行为规则
2、类(Class) • “类”是具有相同属性特征和行为规则的 多个“对象”的一种统一描述 • “类”是对现实世界的一种高度抽象与 概括,而“对象”则是“类”的一个实 例 • “对象”一定具有其属“类”的共同特 征与行为规则,当然一个“对象”还可 以具有其属“类”未曾规定的特征属性 和行为规则
3、事件与响应 事件”是由外部实体作用在“对象”上的 个动作 在OOP方法中,作用在“对象”上的事件包括 对象的创建、释放、收到其他对象发来的“消 ”等 ·对于一些可视对象,如命令按钮等,其最常见 的“事件”往往是一些鼠标动作,如“单击” “双击”、“拖放”或修改对象数据等 当作用在对象上的某个设定“事件”发生时, 与该事件相联系的“方法程序”就运行并完 成该程序的功能
3、事件与响应 • “事件”是由外部实体作用在“对象”上的一 个动作 • 在OOP方法中,作用在“对象”上的事件包括 对象的创建、释放、收到其他对象发来的“消 息”等 • 对于一些可视对象,如命令按钮等,其最常见 的“事件”往往是一些鼠标动作,如“单击” 、 “双击” 、 “拖放”或修改对象数据等 • 当作用在对象上的某个设定“事件”发生时, 与该事件相联系的“方法程序” 就运行并完 成该程序的功能
4、事件代码与方法代码 事件代码与方法代码都是定义在某个对象中的 个程序过程,有时也把两者统称为方法代码。 但狭义地说:事件代码可以由一个“事件”触 发运行,其过程名与事件名相同,而一般方法 程序没有一个与之对应的事件触发,必须靠其 他程序调用才能得以运行 ·不能为对象建立新的事件,所以一个对象包含 的事件代码的数量是一定的,不能增加
4、事件代码与方法代码 • 事件代码与方法代码都是定义在某个对象中的 一个程序过程,有时也把两者统称为方法代码。 但狭义地说:事件代码可以由一个“事件”触 发运行,其过程名与事件名相同,而一般方法 程序没有一个与之对应的事件触发,必须靠其 他程序调用才能得以运行 • 不能为对象建立新的事件,所以一个对象包含 的事件代码的数量是一定的,不能增加
812子类与继承 ·OOP方法中,用“子类”来模拟现实世界中的 类的层次问题 ·“子类”将继承其“父类”的全部特征和方法 程序,当然,在“子类”中可以对这些继承的 特征和方法程序进行修改以对该“子类”进行 更准确的模拟 当对“父类”进行修改后,这种修改会立即反 映到所有以该“父类”为基础而建立的全部 “子类”中,不管这些“子类”是在“父类” 修改前还是修改后建立的
8.1.2子类与继承 • OOP方法中,用“子类”来模拟现实世界中的 类的层次问题 • “子类”将继承其“父类”的全部特征和方法 程序,当然,在“子类”中可以对这些继承的 特征和方法程序进行修改以对该“子类”进行 更准确的模拟 • 当对“父类”进行修改后,这种修改会立即反 映到所有以该“父类”为基础而建立的全部 “子类”中,不管这些“子类”是在“父类” 修改前还是修改后建立的
82VFP对面向对象方法的支持 821 Visual foxpro7.0的类 Fisu FoPo对 控件 客暑 Active Doc 表单 面 匚具栏 超 令接 「线刻 匚。正霹控 orE容器控件 页目挂钧 □可视■非可视 本
8.2 VFP 对面向对象方法的支持 • 8.2 .1 Visual FoxPro 7.0 的类 •
8.2.2容器与控件 Visual foxpro70的基类共分成两个大类: 容器类和非容器类。一般称容器类基类 为容器,而把非容器类基类称为控件, 有时候也把所有基类都称为控件
8.2.2 容器与控件 • Visual FoxPro 7.0的基类共分成两个大类: 容器类和非容器类。一般称容器类基类 为容器,而把非容器类基类称为控件, 有时候也把所有基类都称为控件