第8章 面向对象的程序设计.ppt

上传人:bao****ty 文档编号:130740984 上传时间:2020-05-01 格式:PPT 页数:44 大小:642KB
返回 下载 相关 举报
第8章 面向对象的程序设计.ppt_第1页
第1页 / 共44页
第8章 面向对象的程序设计.ppt_第2页
第2页 / 共44页
第8章 面向对象的程序设计.ppt_第3页
第3页 / 共44页
第8章 面向对象的程序设计.ppt_第4页
第4页 / 共44页
第8章 面向对象的程序设计.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《第8章 面向对象的程序设计.ppt》由会员分享,可在线阅读,更多相关《第8章 面向对象的程序设计.ppt(44页珍藏版)》请在金锄头文库上搜索。

1、1 第8章面向对象的程序设计 2 重点掌握以下概念 OOP对象和类的概念属性 事件和方法的定义OOP的特点类的分类 容器类与控件类对象的处理 绝对引用与相对引用 对象属性的设置 3 8 1 1面向对象程序设计的基本概念 OOP 面向对象程序设计在编程的过程中可以很直观的看着这些对象来编程 而不是先用一大堆的语言代码来编出这些对象 只要像画图一样将它们画出来 其大小和位置也不需要用精确的数字来表示 因此面向对象的编程非常直观简单 在编程的过程中就能看见程序运行后的效果 4 对象和类的概念 对象对象是对客观世界中一切事物的一种抽象 客观世界存在的任何实体都可以看作是一个对象 对象既可以是具体的事物

2、 也可以指某一个概念 某种事件或者某个规则等 如 一本书 一个教室 一名教师 一名学生或者是WINDOWS窗口中的一个命令按钮等 都可以看作是一个对象 5 对象和类的概念 类客观世界可以看作是各种对象的集合 不同的对象具有不同的特征 而许多对象除了具有自己的个性特征之外 还具有许多对象都具有的共性 如果将这组对象的共性特征概括抽象出来 就是类例如 铅笔 钢笔 圆珠笔 毛笔等是功能不同的学习用具 但同时它们也具有一定的共性 因此可以将它们都统称为笔 笔 就是一个类 而当具体指某一支笔时 就称为是对象 6 属性 事件和方法的定义属性 Property 描述了对象的状态和特征 可以由确定的属性特征值

3、来定义 任何对象都具有各自的属性特征 如一名学生 可以由学号 姓名 性别 出生日期 籍贯等属性描述 一门课程 可以由课程编号 课程名称 学时 学分 是否必修课等属性描述 7 属性 事件和方法的定义事件 Event 是可以由对象识别的一个动作或者对象能够响应的某种操作 可以编写相应的代码对此动作进行响应 例如当用鼠标单击命令按钮时 将会触发一个Click事件 并执行该事件下的程序代码 8 属性 事件和方法的定义方法 Method 是对象可以完成的一个操作如释放表单 Release 方法 9 1 封装性指类的内部信息对用户而言是隐藏的 封装的作用是将操作对象复杂的内部细节都封装在对象内部 用户只需

4、要使用对象外部的数据接口就可以访问该对象 这使得用户在操作时 不需要去考虑它是如何执行的 封装性增加了整个程序的可靠性和可维护性 大大提高了应用程序的可用性 8 1 2面向对象程序设计的特点 10 2 继承性继承性即子类具有延用父类特征的能力 一个子类拥有其父类的全部功能 并且还可以添加其他控件和功能 由于有子类与父类之间具有继承性 使得在父类中所做的修改可以反映到它所有的子类当中 基类 父类 子类的概念 方法属性 11 3 多态性多态性是指由同一个父类派生出来的多个子类 在继承了父类的全部功能的同时 还可以添加各自不同的属性和行为 从而使得相互之间具有功能上的差异 12 8 1 3VFP的基

5、类 基类 VFP系统内部预先定义好的类 例如表单 所有控件见书p164用户可以在此基础上创建新类 子类 VFP基类 派生 子类 子类 子类 13 基类 这些类是父容器的集成部分 在类设计器中不能子类化 14 基类的最小属性集 15 基类的最小事件集 16 类的分类 基于类的不同类型 基类可分为容器类和控件类见书P165容器类 可以包含其他类的基类容器可以包含其它对象 容器可以作为所包含的对象的父对象 允许访问包含的对象 控件类 可以包含在容器类中 不能包含其他对象的基类控件对象可以包含在容器中不能作为其它对象的父对象 17 容器类 18 层次体系示意图 表单集 表单 容器 控件 19 1 对象

6、的引用绝对引用相对引用2 属性的设置3 事件的响应 8 2处理对象 20 1 对象的引用何时要引用对象当要设置或取得对象的某个属性的值时 当要执行对象的某个方法事件时 容器层次体系容器与容器中的控件是上下层次的关系 一个应用程序的最高层次是 screen或 VFP 最低层次是一个非容器类控件或是一个不包含任何控件的容器类控件 21 根据对象的层次体系引用对象绝对引用 全名引用 从表单或表单集开始 把层次体系中的对象名由大到小用圆点隔开 直到要引用的控制的某个属性 当最高级为表单时 绝对引用格式 对象变量名 控件当最高级为表单集时 绝对引用格式 对象变量名 表单名 控件注 默认情况下 对象变量名

7、与表单 集 的文件名相同 也可以在用Doform运行表单 集 时 用name参数给出对象变量名 FormSet1 Form1FormSet1 Form1 PageFrame1 Page1 Column1 Text1 22 相对引用在控制内对自身引用 This自身所在容器 父对象 的引用 Parent控制所在的表单的引用 Thisform控制所在的表单集的引用 Thisformset活动的表单的引用 Activeform 需从最高层 SCREEN或 Vfp开始引用 活动的控制的引用 Activecontrol 需从最高层 SCREEN或 Vfp开始引用 SCREEN ActiveForm 直接使

8、用Activeform报错 SCREEN ActiveForm ActiveControlThis parent 23 2 设置对象属性1 每个对象都有属性 可对对象设置属性属性可以在设计时设置也可在运行时设置 但也有一些属性是只读的 设计时修改属性 在 属性 窗口中进行程序代码中 用以下语法进行设置引用对象 属性 值FormSet1 Form1 Text1 Value DATE FormSet1 Form1 Text1 ForeColor RGB 0 0 0 FormSet1 Form1 Text1 BackColor RGB 192 192 192 FormSet1 Form1 Text1

9、 FontName 黑体 24 2 引用一个对象的多个属性和方法如 withformset1 form1 text1 Value DATE ForeColor RGB 0 0 0 BackColor RGB 192 192 192 FontName 黑体 endwith3 引用容器中的多个对象如 WithThisform txtXh backcolor rgb 128 0 0 txtXm backcolor rgb 0 128 0 Endwith 25 当事件触发时 包含在事件过程中的代码就会执行 这就是对事件的响应 对象能够识别的事件是固定的 用户不能创建新的事件 在容器层次中 容器的事件代

10、码过程与包含在容器内的控件的事件代码过程是相互独立的 事件触发的三种方式 1 用户的一个动作触发 例如单击鼠标 2 系统自动触发 例如计时器的timer事件 3 编写代码触发事件 例如mand1 click 3 事件的响应 26 8 2 4方法的调用 方法程序是对象能够执行的一个操作 是和对象相联系的过程调用语法 例如 1 释放表单 Thisform release2 显示表单Form1 并将焦点设置在文本框Text2上 FormSet1 Form1 showFormSet1 Form1 Text2 SetFocus 27 8 2 5常用的事件和方法P169 28 29 事件 容器层次事件和类

11、层次中的事件容器不处理与所包含的控件相关联的事件本对象有事件代码则执行本对象的代码 若无事件代码 则不执行更高层容器同一事件的代码 例外 选项按钮组与命令按钮组事件激发的顺序打开 调试器 窗口 工具 事件跟踪 开启事件跟踪 30 事件 常用事件 核心事件 Load当表单或表单集被加载时产生Unload当表单或表单集从内存中释放时产生Init创建对象时产生Destroy从内存中释放对象时产生Click用户在对象上单击鼠标时产生DblClick用户在对象上双击鼠标时产生RightClick用户在对象上单击鼠标右键时产生GetFocus对象得到焦点时产生LostFocus对象失去焦点时产生KeyPr

12、ess用户按键时产生MouseDown在对象上按下鼠标MouseUp在对象上松开鼠标MouseMove在对象上移动鼠标InteractiveChange交互式改变对象值ProgrammaticChange可编程地改变对象值 31 事件 鼠标事件 一 MouseMove事件当用户在一个对象上移动鼠标时发生PROCEDUREObject MouseMove LPARAMETERSnIndex nButton nShift nXCoord nYCoord 或LPARAMETERSnButton nShift nXCoord nYCoordClick事件程序中包含触发此事件的代码 或鼠标单击控制PRO

13、CEDUREObject Click LPARAMETERSnIndex 32 事件 鼠标事件 二 RightClick事件当用户在控制上右击鼠标时发生PROCEDUREControl RightClick LPARAMETERSnIndex DblClick事件当连续两次点击鼠标左键并释放时发生PROCEDUREObject DblClick LPARAMETERSnIndex 33 事件 鼠标事件 三 MouseDown事件当用户按下一个鼠标键时发生MouseUp事件当用户释放一个鼠标键时发生DragDrop事件当完成拖放操作时发生 DragOver事件控制拖过目标对象时发生此事件PROC

14、EDUREObject DragOverLPARAMETERS nIndex oSource nXCoord nYCoord nState 34 事件 鼠标事件 四 DropDown事件组合框中 点击下箭头后 列表即将被下拉时PROCEDUREComboBox DropDown LPARAMETERSnIndex Scrolled事件表格控制中 单击水平或垂直滚动条PROCEDUREGrid ScrolledLPARAMETERS nIndex nDirectionDownClick事件 单击控制的下箭头时UpClick事件 单击控制的上箭头时 35 事件 键盘事件 KeyPress事件当用户

15、按下并释放某个键时 发生此事件PROCEDUREObject KeyPressLPARAMETERS nIndex nKeyCode nShiftAltCtrl或LPARAMETERSnKeyCode nShiftAltCtrl 36 事件 改变控件内容的事件 InteractiveChange事件在使用鼠标或键盘更改控制的值时发生PROCEDUREControl InteractiveChange LPARAMETERSnIndex ProgrammaticChange事件在程序代码中更改一个控制值时发生PROCEDUREControl ProgrammaticChange LPARAMET

16、ERSnIndex 37 事件 焦点事件 一 焦点 Focus 用以指出当前被操作的对象GotFocus事件用任何方法使对象接受到焦点时发生PROCEDUREObject GotFocus LPARAMETERSnIndex LostFocus事件当某个对象失去焦点时发生 38 事件 焦点事件 二 When事件在控制接受焦点之前发生该事件PROCEDUREControl When LPARAMETERSnIndex 返回值 T 和 F 结果不同Valid事件在控制失去焦点之前发生该事件返回值 T 和 F 结果不同 39 事件 表单事件 一 Load事件 表单和表单集 创建对象之前发生PROCEDUREControl Valid LPARAMETERSnIndex UnLoad事件 表单和表单集 在对象被释放时发生Activate 激活 事件当激活表单 表单集或页对象 或者显示工具栏对象时 发生该事件PROCEDUREObject Activate 40 事件 表单事件 二 Activate事件当激活表单 表单集或页对象 或者显示工具栏对象时 发生该事件PROCEDUREObject A

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号