资源预览内容
第1页 / 共162页
第2页 / 共162页
第3页 / 共162页
第4页 / 共162页
第5页 / 共162页
第6页 / 共162页
第7页 / 共162页
第8页 / 共162页
第9页 / 共162页
第10页 / 共162页
亲,该文档总共162页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,1/160,第 8 章 面向对象程序设计,支持面向对象编程是Visual FoxPro的一大特色,掌握面向对象程序设计,能深入体会、理解Windows程序的设计方法。面向对象的程序设计方法与可视化技术相结合,使人机界面进入GUI时代 本章主要为初学者建立面向对象程序设计的基本概念,掌握Visual FoxPro中基于面向对象技术的表单程序设计,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,2/160,教学要求,掌握面向对象程序设计的基本概念:类、对象、属性、事件、方法、类的特性(封装性和继承性) 掌握对象的引用方法 掌握表单的概念、表单的设计方法,掌握常用控件的属性、事件和方法,重点掌握事件代码和方法程序的编写。这是本课程的重点和难点 掌握下拉菜单和快捷菜单的建立方法 了解报表的相关概念,掌握报表的设计及调用,标签、文本框、命令按扭与命令按扭组、复选框与选项按扭组、列表框、组合框,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,3/160,本章重点,面向对象程序设计的基本概念 表单设计的基本方法,本章难点 面向对象程序设计基本概念 表单控件使用及属性设置 事件驱动编程,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,4/160,第 1 节 面向对象程序设计概述,面向对象的程序设计(OOP- Object Oriented Programming)是近年来发展起来的一种新的程序设计方法,该方法简单、直观、实用、自然 , 十分接近人类处理问题的自然思维方式 面向对象程序设计从所处理的数据入手,以数据为中心而不是以功能为中心来描述系统 本节内容 类与对象 对象的属性、事件与方法 面向对象编程 面向对象编程实例,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,5/160,一个简单面向对象程序的编写示例,表单上有两个按钮:按钮Command1的标题是“奥运加油”,按钮Command2是“中国加油”。表单运行时,标签Label1的标题是“奥运加油”,单击“中国加油”按钮时,Label1的标题变成“中国加油”;单击“奥运加油”按钮时,Label1的标题变成“奥运加油”,创建容器对象 - 表单 布局控件对象:添加一个标签和两个命令按钮 设置对象属性:标签的FontSize、Caption,命令按钮的Caption 编写事件代码:命令按钮的Click事件代码 保存奥运-中国加油.scx,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,6/160,一、面向对象程序设计的基本概念,1. 对象(Object) 在应用领域中,有意义的、且与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体,如一个人、一名学生、一所学校、一部电话机;也可以是一些无法整体触及的抽象事件,如一次演出、一次贷款等,所有这些对象都具有各自不同的特征 例如一部电话机,它是一个客观存在,人们把它叫“电话机”。其次它具有颜色、大小、按键方式等特征。再其次它具有一些功能,如拨号打电话、免提、存储等 同样对一个人来说,首先他是一个客观存在、具有一个名字来标识的事物,其次他具有性别、年龄、身高、体重等体现其自身状态的特征,再其次他具有一些技能和行为,如会操作电脑、会说英语等,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,7/160,面向对象程序设计的基本概念,对象具有以下特征 有一个名字以区别于其他对象 有一组状态用来描述它的特征 有一组操作,每一个操作决定对象的一种功能或行为 对象的操作可分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作 从可视化编程的角度来看,对象是一个具有属性(数据)、能处理相应事件、具有特定方法(行为方式)、以数据为中心的统一体。简单地说,对象是一种将数据和操作过程封装在一起而构成的统一体 一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来描述,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,8/160,面向对象程序设计的基本概念,2. 对象的属性、事件和方法,(1) 属性(Proprity) 属性是一组用于描述对象的物理特征的值,例如:一个汽车对象由颜色、尺寸、品牌、厂家等基本属性描述 在Visual FoxPro中,一个命令按钮具有名字(Name)、标题(Caption)、能否激活(Enabled)等属性,这使得用户可以通过控制对象的这些属性值来操作这些对象 属性值既可以预先定义,也可以在程序运行过程中由程序定义的修改,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,9/160,面向对象程序设计的基本概念,(2) 事件(Event) 事件是由对象识别的一个动作,用户可以编写相应代码对此动作进行响应。事件可以由一个用户动作产生,如单击鼠标或按键盘键位,也可以由程序代码或系统产生,如计时器。多种情况下,事件是通过用户的交互操作产生的 在 Visual FoxPro 中,可以激发事件的用户动作包括:单击鼠标Click、双击鼠标DblClick、按键KeyPress、移动鼠标MouseMove等 Visual FoxPro中的事件集是固定的,用户不能建立新的事件,因此系统提供了丰富的内部事件,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,10/160,面向对象程序设计的基本概念,(3) 方法(Method) 方法是对象能够执行的一个操作,表示对象的一种行为(或功能 或提供的服务),它只局限于被封装的对象调用 每个类型的对象都有它的方法集,一个方法实现一个特定的目的。调用时要按照调用方法的规则(接口)来书写 在Visual FoxPro中,方法分为以下两种: 内部方法:已经预先定义好的,其功能和代码已封装在类中,用户不得更改。例如刷新方法Refresh、释放表单方法Release等 自定义方法:是用户根据需要所编写的过程,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,11/160,面向对象程序设计的基本概念,3. 类(Class) “类”是对一组客观对象的抽象,它将该组对象所具有的共同特征(属性和行为)集中起来,以说明该组对象的能力和性质,例 :一个面向对象的图形程序在屏幕上要画三个圆 在屏幕左下角显示一个半径 2cm 的绿颜色的圆 在屏幕中部显示一个半径 5cm 的红颜色的圆 在屏幕右上角显示一个半径 4cm 的黄颜色的圆,三个不同的对象:圆心位置、半径大小和颜色均不相同 它们有相同的特征: 都有相同的数据:圆心坐标、半径、颜色 相同的操作:显示自己、放大缩小半径、在屏幕上移动位置,抽象出一个 “circle类” : (radius , x , y , color),2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,12/160,面向对象程序设计的基本概念,(1) 实例(Instance),实例是由某个特定的类所描述的一个具体的对象。类与实例之间的关系可以看成是抽象与具体的关系,类是多个实例的综合抽象,而实例则是类的个体实物 类是建立对象时使用的模板,它定义了对象特征以及对象外观和行为。按照这个模板所建立的一个个具体的对象,就是类的实例 对于同一类的不同实例之间,必定具有以下特点: 相同的属性集合 相同的操作集合 不同的对象名,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,13/160,面向对象程序设计的基本概念,(2) 基类和子类,类可以划分为基类和子类,也叫父类和派生类。子类以其基类为起点,并可继承基类的特征 例如水果是基类,苹果是子类,而红富士、黄元帅等苹果品种又是苹果类的子类。水果称为苹果的父类,苹果也称为红富士、黄元帅等的父类 子类不但具有父类的全部属性和方法,而且允许用户根据需要对已有的属性和方法进行修改,或添加新的属性和方法。这种特性称为类的继承性,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,14/160,面向对象程序设计的基本概念,(3) 类的特性,封装性是指类的内部信息对用户是屏蔽的,即将对象的属性、方法程序包装在一起。例如:用于确定命令按钮外观、位置等的属性和鼠标单击该命令按钮时所执行的代码是被封装在一起的 子类不但具有父类的全部属性和方法,而且允许用户根据需要对已有的属性和方法进行修改,或添加新的属性和方法。这种特性称为类的继承性。有了类的继承,用户在编写程序时,可以把具有普遍意义的类通过继承引用到程序中,并只需添加或修改较少的属性、方法,这种自动更新节省了用户的时间和精力,减少了维护代码的难度 多态性是指一些相关的类包括同名的方法程序,但方法程序的内容不同。在运行时,根据不同的对象、类及触发的事件、控件、焦点确定调用哪种方法程序,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,15/160,面向对象程序设计的基本概念,Visual FoxPro有两大主要类型的类 容器类 控件类 建立的对象有 容器对象 控件对象,可视,非可视,4. Visual FoxPro的基类,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,16/160,面向对象程序设计的基本概念,(1) 容器类与容器类对象 容器对象内既可以包含其他容器对象,也可以包含控件对象,容器类及其能包含的对象,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,17/160,面向对象程序设计的基本概念,容器对象与控件对象关系示意图,控件,容器,容器中的对象,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,18/160,面向对象程序设计的基本概念,(2) 控件类与控件类对象 控件对象是通过控件类建立的对象,控件类不能容纳其他对象,控件对象是用户和程序进行交互的主要方式 两种类型的控件:绑定型控件 和 非绑定型控件,绑定型控件(Bound Control) 绑定型控件是指表单或报表上的一种控件,它的内容与后端的表字段、临时表字段或查询中的某一字段或变量相关联 例如,一个显示学生姓名的文本框与“学生”表中的“姓名”字段相捆绑 操作绑定型控件时,控件中的数据被限制在一个数据源中,通过设置控件的ControlSource属性来实现 非绑定型的控件(Non-Bound Control) 如果是非绑定型的控件,则不设置ControlSource属性,这时选择的值只能当作一个属性设置来存储,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,19/160,二、对象的引用,1. 对象的包容层次 当一个容器类对象包含另一个对象时,称该对象是容器类对象的子对象,而容器类对象称为该对象的父对象,2020年12月20日星期日,第 8 章 面向对象程序设计 - He-Mingrui,20/160,对象的引用,2. 点(.)操作符 在Visual FoxPro中对象(包括属性、事件和方法)的引用是通过点(.)操作符实现的 点操作符是对象参考与属性、事件、方法或子对象的分隔符,点操作符的作用格式如下: .CommandGroup1.Command1 .Text1.FontSize .Command1.Click .Text1.Refresh(),2020年12月20日星期
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号