第5章VFP语言基础-面向对象的程序设计.ppt
文本预览下载声明
第五章 程序设计基础 两种程序设计方法 面向对象的程序设计方法 方法:基于问题对象的自底向上的功能综合,从内部结构上模拟客观世界 开发过程:从“用什么做”到“要做什么” 优点 以对象为中心的问题求解方法简化程序设计,更接近现实世界,可降低开发和维护的费用 提高程序代码的可重用性 可以和各种模型自然的融合 一、类和对象概述1 类: 所谓类(Class),就是一组具有相同结构、性质、共同操作特点及遵守相同规则的对象的集合。 它是对某种具有共同属性及其行为特征的对象群体的抽象描述。 对象:是类的一个实例(包含具体数据、过程定义)。 一、类和对象概述2 类是静态概念,对象是动态概念 “类”定义了某类对象特征以及对象外观和行为的模板,它刻划了一组具有共同特性的对象群体 “对象”则是基于某种类所创建的一个实例 在OOP中,类就像是一个模板,对象都是基于这个模板生成的:类定义了对象所具有的属性、事件和方法,从而决定了该类对象的属性和它的行为。Visual FoxPro系统为用户提供29个基类 类 基类:VFP系统提供的内部定义的类,可用于用户定义子类的基础 子类:是以其它类(已有的)定义为起点,为某一种对象所建立的新类。子类将继承任何对父类所做的修改 用户自定义类:与基类相似,由用户自己定义,也可用于派生子类,但无可视化表示形式 特性 继承性(inheritance) 子类沿用父类特征的能力 如果父类特征发生改变,则子类将继承这些新特征 多态性(polymorphism) 一些关联的类包含同名的方法程序,但方法程序的内容可以不同 相同的操作作用于多种类型的对象上获得不同的结果,增强系统的灵活性、维护性和扩充性 特性 封装性 (encapsulation) 说明了包含和隐藏对象信息的能力 高内聚,低耦合 抽象性(abstraction) 提取一个类或对象与众不同的特征,而不对该类或对象的所有信息进行处理 对象(Object) 对象(Object)是类的实例。 每个对象都具有描述它特征的属性,以及附属于它的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是“类”的具体实例。 每个对象都具有属性及与之相关的事件和方法 在VFP中,包含在应用程序中的表单及各种控件都是对象。对象是包含数据和代码的实体。在程序设计中,用属性、事件和方法来说明对象,属性就是对象的数据内容,事件和方法则是对象中包含的代码。 属性(Property) 用于定义对象的特征或某一方面的行为。 每个对象都具有属性,属性表明了对象的一些基本特征,如大小、颜色、所处的位置等 属性构成: 一方面由对象所基于的类决定;另一方面也可为其定义新的属性 对象的每一种属性,都是与其它对象加以区别的特性,都具有一定的含义,并可赋予一定的值。 属性值:对象各属性的具体内容指定 可设置内容:由用户(设计者)设置 不可设置内容:只读 事件(Event) 事件(Event) 是每个对象可用以识别和响应的某些行为和动作。可编写相应的程序代码对事件动作进行响应。 事件是一种预先定义好的特定动作,被用户行为或系统事件激活,每个对象都可以对相关事件的动作进行识别和响应。在多数情况下,事件是由用户的交互行为产生的。 不同对象能够识别的事件内容是不一致的,在VFP中,事件集合是固定的(由系统指定),用户不能进行扩充。(即用户不能自己创建新事件) 方法(Method) 是对象能够执行的一个操作流程 方法是与对象相关联的过程,也称方法程序 方法程序有系统提供的,也可由用户根据需要自己创建 VFP方法也均有名称标识,通过名称使用 例:release 方法程序也往往与对象事件相关联 方法实际上就是对象的内部过程(函数),每个类型的对象都有它自己的方法集。例如在命令按钮对象中,调用Move方法可以移动按钮的位置。与事件不同的是,方法可以由用户进行扩展。 二、基类 基类:VFP系统提供的内部定义的类 子类:引用VFP基类或其他子类建立的新类 用户自定义类:与基类相似,由用户自定义,但无可视的表示形式 VFP的29个基类 容器类 基类的最小属性集 基类的最小事件集 层次体系示意图 1.引用对象 分类 绝对引用和相对引用 何时要引用对象 当要设置或取得对象的某个属性的值时 当要执行对象的某个方法事件时 容器层次体系 容器与容器中的控件是上下层次的关系 一个应用程序的最高层次是各种活动表单或表单集,最低层次是一个非容器类控件对象或是一个不包含任何控件的容器类对象 绝对引用 绝对引用:从容器的最高层次引用对象,给出对象的绝对地址 例:表单Form1对象:FormSet1.Form1 表格的第一列中的文本框Text1对象: Form
显示全部