53面向对象的程序设计基础课件.ppt

上传人(卖家):晟晟文业 文档编号:4767506 上传时间:2023-01-08 格式:PPT 页数:26 大小:185.50KB
下载 相关 举报
53面向对象的程序设计基础课件.ppt_第1页
第1页 / 共26页
53面向对象的程序设计基础课件.ppt_第2页
第2页 / 共26页
53面向对象的程序设计基础课件.ppt_第3页
第3页 / 共26页
53面向对象的程序设计基础课件.ppt_第4页
第4页 / 共26页
53面向对象的程序设计基础课件.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、5.3 5.3 面向对象的程序设计基础面向对象的程序设计基础p面向对象的程序设计面向对象的程序设计(OOP)(OOP)概述概述p类和对象概述类和对象概述p基类基类p处理对象处理对象p事件模型事件模型面向对象的程序设计方法面向对象的程序设计方法 面向对象的程序设计(面向对象的程序设计(OOP)基本单位:类和对象基本单位:类和对象 重要特性:封装性、继承性和多态性重要特性:封装性、继承性和多态性 开发方法:自底向上的功能综合开发方法:自底向上的功能综合 开发过程:从开发过程:从“用什么做用什么做”到到“要做什要做什么么”优点:系统化的程序设计方法优点:系统化的程序设计方法 特点:采用以对象为中心的

2、问题求解方特点:采用以对象为中心的问题求解方法,程序设计通过面向对象来实现法,程序设计通过面向对象来实现类和对象类和对象2类类 指的是具有相同结构、操作并遵守相同指的是具有相同结构、操作并遵守相同规则的规则的一组对象一组对象,它刻画了对象的,它刻画了对象的模板模板,它是一个具有相同行为的对象的抽象。它是一个具有相同行为的对象的抽象。2对象对象 是类的一个是类的一个实例实例,包括了数据和过程,包括了数据和过程。程序由一个或多个类组成。程序由一个或多个类组成。在程序运行时视需要创建该类的各个对象。在程序运行时视需要创建该类的各个对象。类是静态概念,对象是动态概念。类是静态概念,对象是动态概念。对对

3、 象象1每个对象都具有属性以及与之相关的事件和方法,通过对象的属每个对象都具有属性以及与之相关的事件和方法,通过对象的属性、事件和方法来处理对象。性、事件和方法来处理对象。属性属性 定义定义对象的对象的特征或某一方面的行为特征或某一方面的行为,如大小、颜色、所处,如大小、颜色、所处的位置等。的位置等。事件事件 是由对象识别的一个动作,可以编写相应的代码,以对此是由对象识别的一个动作,可以编写相应的代码,以对此动作进行响应。动作进行响应。事件是一种预先定义好的特定动作,被用户或系事件是一种预先定义好的特定动作,被用户或系统激活,每个对象都可以对事件的动作进行识别和响应。在多数统激活,每个对象都可

4、以对事件的动作进行识别和响应。在多数情况下,事件是由用户的交互行为产生的情况下,事件是由用户的交互行为产生的(用户不能创建新的(用户不能创建新的事件)事件)方法方法 是对象能够执行的一个操作。是对象能够执行的一个操作。方法实际上就是对象的内部方法实际上就是对象的内部函数,每个类型的对象都有它自己的方法集。例如在命令按钮对函数,每个类型的对象都有它自己的方法集。例如在命令按钮对象中,调用象中,调用Move方法可以移动按钮的位置。方法可以移动按钮的位置。与事件不同的是与事件不同的是,方法可以由用户进行扩展。方法可以由用户进行扩展。方方 法法7方法是对象能够执行的一个操作。在方法是对象能够执行的一个

5、操作。在VFPVFP中,系统提供中,系统提供了一些方法,其程序是一些默认过程。了一些方法,其程序是一些默认过程。1.AddItem方法是组合框或列表框中添加一个新数据项,并且可以指定数据项索引。2.AddObject方法是在运行时向容器对象中添加对象。3.Clear方法是清除组合框或列表框中的内容。4.Refresh方法是重画表单或控件,并刷新所有值。5.Setall方法是为容器对象中的控件或某类控件指定属性设置。6.SetFocus方法是为一个控件指定焦点7.Show方法是显示一个表单,并且确定是模式表单还是无模式表单。对象的特性对象的特性 对象对象是面向对象式系统中运行时刻的是面向对象式系

6、统中运行时刻的基本成分基本成分,它是属性,它是属性与行为(即数据与操作)以及与其他对象接口的封装体。与行为(即数据与操作)以及与其他对象接口的封装体。在在VFPVFP中,包含在应用程序中的表单及各种控件都是对象。中,包含在应用程序中的表单及各种控件都是对象。对象是包含数据和代码的实体。在程序设计中,对象是包含数据和代码的实体。在程序设计中,用属性、用属性、事件和方法来说明对象,属性就是对象的数据,事件和方事件和方法来说明对象,属性就是对象的数据,事件和方法则是对象中包含的代码。法则是对象中包含的代码。类的分类类的分类v 基类基类(baseclass)VFP系统提供的内部定义的类,可用做其他用户

7、自定义类的基础。(如表单和所有控件)v 子类子类(Subclass)以其他类定义为起点,为某一种对象所建立的新类。子类将继承任何对父类(即子类所基于的类)所做的修改。v 用户自定义类用户自定义类与基类相似,但由用户定义,并且可用来派生子类。这种类没有可视化表示形式。基类的分类基类的分类v容器类和控件类(也称为非容器类)。容器类和控件类(也称为非容器类)。q容器类是包含其他容器的基类。容器类是包含其他容器的基类。将容器类的对将容器类的对象加入表单后,无论在设计时,还是在运行时象加入表单后,无论在设计时,还是在运行时,均可将该容器类的对象作为一个整体进行操,均可将该容器类的对象作为一个整体进行操作

8、,也可以对其包含的对象进行处理。例如,作,也可以对其包含的对象进行处理。例如,表单集(表单、工具栏),选项按纽组(选项表单集(表单、工具栏),选项按纽组(选项按纽)。按纽)。q控件类是可以包含在其他容器类中的基类。控件类是可以包含在其他容器类中的基类。例例如,命令按钮和文本框就属于控件类。如,命令按钮和文本框就属于控件类。基类基类5 容器、编辑框、列表框、标签、控件、文本框、组合框、图像、表单集、微调框、复选框、形状、表单、表格、选项按钮组、线条、工具栏、标头*、选项按钮*、分隔符*、自定义、列*、计时器、命令按钮组、页框、OLE绑定型控件、命令按钮、页面*、OLE容器控件注:*表示该类是容器

9、类的集成部分,在类设计器中不能基于他们创建子类基类的最小属性集基类的最小属性集vClass该类属于何种类型vBaseClass该类由何种基类派生而来vClassLibrary 该类属于哪种类库vParentClass对象所基于的类BZ基类的最小事件集基类的最小事件集 Init 当对象创建时激活当对象创建时激活 Destroy 当对象从内存中释放时激活当对象从内存中释放时激活 Error 当类中的事件或方法程序运行中当类中的事件或方法程序运行中发生错误时激活发生错误时激活处理对象处理对象一、一、引用对象引用对象二、二、设置对象属性设置对象属性三、三、调用对象的方法程序调用对象的方法程序四、四、对

10、事件的响应对事件的响应引用对象引用对象 绝对引用绝对引用 绝对引用是指从容器的最高层次引用对象,给出对象的绝对引用是指从容器的最高层次引用对象,给出对象的 绝对地址绝对地址Formset1.Form1.Pageframe1.Page1.Grid1.Column1.Text1 相对引用相对引用 相对引用是指在容器层次中相对于某个容器层次的引用。相对引用是指在容器层次中相对于某个容器层次的引用。相对引用通常应用于某个对象的事件处理代码或方法程序代码中。相对引用通常应用于某个对象的事件处理代码或方法程序代码中。Form1层:层:Pageframe1.Page1.Grid1.Column1.Text1

11、Form1中中Text2层:层:thisform.Pageframe1.Page1.Grid1.Column1.Text1Page2层:层:this.parent.Page1.Grid1.Column1.Text1相对引用的关键字相对引用的关键字nThis 该对象本身nThisform 该对象所在的表单nThisformset 该对象所在的表单集nParent 包含该对象的直接容器n_Screen 屏幕的对象v 例如:对当前活动表单中的当前活动控件的应用:例如:对当前活动表单中的当前活动控件的应用:_SCREEN.ActiveForm.ActiveControl_SCREEN.ActiveFo

12、rm.ActiveControl设置对象属性设置对象属性 对象的属性可以在设计时设置,也可在运行时设置,但也有些属性对象的属性可以在设计时设置,也可在运行时设置,但也有些属性是只读的,即不可更改。是只读的,即不可更改。设置的方法:设置的方法:1 1、采用可视化的方法来对象设计时,在、采用可视化的方法来对象设计时,在“属性属性”窗口中进行对象窗口中进行对象属性的设计。属性的设计。2 2、在程序代码中设置。其格式:、在程序代码中设置。其格式:引用对象引用对象.属性属性 =值值3 如:如:thisform.Text1.Value=DATE().Text1.Value=DATE()thisform.T

13、ext1.ForeColor=RGB(255,0,255).Text1.ForeColor=RGB(255,0,255)thisform.Text1.BackColor=RGB(192,192,192).Text1.BackColor=RGB(192,192,192)thisform.Text1.FontName=.Text1.FontName=“黑体黑体”对同一对象多个属性的设置6 采用WITHENDWITH语句简化。3如:WITH thisform.Text1 .Value=DATE().ForeColor=RGB(255,0,255).BackColor=RGB(192,192,192)

14、.FontName=“黑体”ENDWITH调用对象的方法程序调用对象的方法程序对象的方法需要显式调用,且可在应用程序的任何地方。对象的方法需要显式调用,且可在应用程序的任何地方。调用方法程序的语法为:调用方法程序的语法为:引用对象引用对象.方法程序方法程序调用调用hide方法来隐藏表单:方法来隐藏表单:thisform.hidethisform.hide 从内存中释放表单:从内存中释放表单:thisform.Releasethisform.Release 刷新表单:刷新表单:thisform.Refreshthisform.Refresh 设置输入焦点在文本框上:设置输入焦点在文本框上:thi

15、sform.text1.SetFocusthisform.text1.SetFocus对象能够执行的一个操作,是和对象相联系的过程对象能够执行的一个操作,是和对象相联系的过程。调用对象的方法程序调用对象的方法程序q如果在调用方法时需要传递参数,应该将参数包括在方法名后的圆括号中。q如果是调用方法后有返回值,即使没有传递参数,在方法名后也要加圆括号。示例如下:示例如下:THIS.Move(100,50)&传递参数给方法THIS.Caption=THISFORM.GetNewCaption()&方法的返回值作为对象的新标题对事件的响应对事件的响应0当对象的事件发生时,该事件的过程代码就被自动执行。

16、当对象的事件发生时,该事件的过程代码就被自动执行。如果事件没有与之相关的处理程序,则事件发生时不会发如果事件没有与之相关的处理程序,则事件发生时不会发生任何操作。生任何操作。例如:用户单击命令按钮,将产生一个例如:用户单击命令按钮,将产生一个ClickClick事件,命令事件,命令按钮的按钮的ClickClick事件代码被执行。事件代码被执行。需要特别强调说明:需要特别强调说明:事件一般是由用户的交互方式触发的,如单击或双击鼠标,按下键盘上的键,也有些是被系统触发的,象计时器控制中的Timer 事件。在没有事件发生时,用户也可以显式地调用与事件相关的过程,如语句:thisformset.for

17、m1.Activatethisformset.form1.Activateo 将使将使ActivateActivate事件代码被执行事件代码被执行,但并不激活这个表单。,但并不激活这个表单。事件模型事件模型核心事件核心事件 VFP提供了比较全面的事件处理机制,使得程序员能够较容易地为用户设计基于事件驱动的、内容更丰富的交互环境。每一个类都有自己的事件集合,不同的类有不同的事件种类,如计时器具有Timer事件,而其它的类则没有,但也有一些事件是大多数类都具有的,下面列出一些通常使用到的、大多数类都具有的VFPVFP核心事件核心事件:VFPVFP的核心事件集的核心事件集 Load:表单或表单集被加

18、载到内存中:表单或表单集被加载到内存中 Unload:从内存中释放表单和表单集:从内存中释放表单和表单集 Init:创建对象:创建对象 Destroy:从内存中释放对象:从内存中释放对象 Click:用户使用主鼠标按钮单击对象:用户使用主鼠标按钮单击对象 DblClick:用户使用主鼠标按钮双击对象:用户使用主鼠标按钮双击对象 RightClick:用户使用副鼠标按钮单击对象:用户使用副鼠标按钮单击对象 GotFocus:对象接受焦点,由用户动作引起,:对象接受焦点,由用户动作引起,如按【如按【Tab】键或单击,或者在代码中使用】键或单击,或者在代码中使用SetFocus方法方法VFPVFP的

19、核心事件集的核心事件集 Lostfocus:对象失去焦点,由用户动作引起,如按:对象失去焦点,由用户动作引起,如按【Tab】键或单击,或者在代码中使用】键或单击,或者在代码中使用SetFocus方法方法 KeyPress:用户按下或释放键:用户按下或释放键 MouseDown:当鼠标指针停在一个对象上时,用户按:当鼠标指针停在一个对象上时,用户按下鼠标按钮。下鼠标按钮。MouseMove:用户在对象上移动鼠标:用户在对象上移动鼠标 MouseUp:当鼠标指针停在一个对象上时,用户释放:当鼠标指针停在一个对象上时,用户释放鼠标按钮。鼠标按钮。InteractiveChange:以交互方式改变对象

20、值:以交互方式改变对象值 ProgrammaticChange:以编程方式改变对象值:以编程方式改变对象值容器层次与类层次中的事件容器层次与类层次中的事件 为控件编写事件代码应注意的原则:为控件编写事件代码应注意的原则:1、容器不处理所包含的控件相关联事件;2、若没有与控件相关联的事件代码,vfp将在更高的类层次上检查是否有与此事件相关联的控件代码。事件激发的顺序事件激发的顺序*基于事件驱动的编程技术不同于传统的过程化基于事件驱动的编程技术不同于传统的过程化程序设计,程序的执行顺序不是在设计时确定程序设计,程序的执行顺序不是在设计时确定的,而是取决于事件的顺序。有时一个用户动的,而是取决于事件

21、的顺序。有时一个用户动作只触发一个事件,而有些情况下会有作只触发一个事件,而有些情况下会有多个事多个事件接连发生件接连发生,如包含多个对象的表单被启动运,如包含多个对象的表单被启动运行的时候,这样的情况下,了解行的时候,这样的情况下,了解事件发生的顺事件发生的顺序序是很重要的,否则就无法确定该往哪个事件是很重要的,否则就无法确定该往哪个事件中写入代码。中写入代码。vP156P156表表5-75-7常用的事件常用的事件 鼠标事件:鼠标事件:click事件、事件、dbclick事件事件、MouseMove事件、事件、dragdrop事件事件 焦点事件:焦点事件:gotfocus事件、事件、lost

22、focus事件事件、when事件、事件、valid事件事件 表单事件:表单事件:load事件事件、unload事件、事件、activate事件事件 其他事件:其他事件:timer事件、事件、init事件事件、destroy事件、事件、error事件事件事件驱动和事件循环事件驱动和事件循环3 在在vfp应用程序中,应用程序中,事件循环是由事件循环是由read events命令建立、命令建立、clear events命令终止的命令终止的交互时刻环境交互时刻环境。当发出当发出 READ EVENTSREAD EVENTS命令时,命令时,VFPVFP启动事件处理。启动事件处理。发出发出 CLEAR EVENTSCLEAR EVENTS命令时停止事件处理。命令时停止事件处理。READ EVENTS命令通常时出现在应用程序的主程序中,或主表单的某事件处理程序中。在启动事件循环之前需要建立一种退出事件循环的方法,而且必须确保界面有这种发出CLEAR EVENTS命令的机制(如表单的退出按钮),否则进入死循环。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(53面向对象的程序设计基础课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|