欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    VFP语言基础-面向对象的程序设计.ppt

    • 资源ID:5576401       资源大小:344.50KB        全文页数:44页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VFP语言基础-面向对象的程序设计.ppt

    第五章 程序设计基础,5.1 程序设计概述5.2 结构化程序设计 5.3 面向对象的程序设计基础,2,本 章 重 点,结构化程序设计顺序、选择、循环过程和函数面向对象的程序设计类和对象属性、方法、事件,3,结构化程序设计,到,面向对象程序设计OOP,两种程序设计方法,1本质:功能设计 2方法:自顶向下、功能分解,从外部功能上模拟客观世界 3开发过程:从“做什么”到“如何做”4优点:系统结构性强、便于设计和理解 5缺点:维护困难,4,面向对象的程序设计方法方法:基于问题对象的自底向上的功能综合,从内部结构上模拟客观世界开发过程:从“用什么做”到“要做什么”优点以对象为中心的问题求解方法简化程序设计,更接近现实世界,可降低开发和维护的费用提高程序代码的可重用性可以和各种模型自然的融合,5.3 面向对象的程序设计基础,5,一、类和对象概述1,类:所谓类(Class),就是一组具有相同结构、性质、共同操作特点及遵守相同规则的对象的集合。它是对某种具有共同属性及其行为特征的对象群体的抽象描述。对象:是类的一个实例(包含具体数据、过程定义)。,6,一、类和对象概述2,类是静态概念,对象是动态概念“类”定义了某类对象特征以及对象外观和行为的模板,它刻划了一组具有共同特性的对象群体“对象”则是基于某种类所创建的一个实例在OOP中,类就像是一个模板,对象都是基于这个模板生成的:类定义了对象所具有的属性、事件和方法,从而决定了该类对象的属性和它的行为。Visual FoxPro系统为用户提供29个基类,7,基类:VFP系统提供的内部定义的类,可用于用户定义子类的基础子类:是以其它类(已有的)定义为起点,为某一种对象所建立的新类。子类将继承任何对父类所做的修改用户自定义类:与基类相似,由用户自己定义,也可用于派生子类,但无可视化表示形式,类,8,继承性(inheritance)子类沿用父类特征的能力如果父类特征发生改变,则子类将继承这些新特征多态性(polymorphism)一些关联的类包含同名的方法程序,但方法程序的内容可以不同相同的操作作用于多种类型的对象上获得不同的结果,增强系统的灵活性、维护性和扩充性,特性,9,封装性(encapsulation)说明了包含和隐藏对象信息的能力高内聚,低耦合抽象性(abstraction)提取一个类或对象与众不同的特征,而不对该类或对象的所有信息进行处理,特性,10,对象(Object)是类的实例。每个对象都具有描述它特征的属性,以及附属于它的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是“类”的具体实例。每个对象都具有属性及与之相关的事件和方法 在VFP中,包含在应用程序中的表单及各种控件都是对象。对象是包含数据和代码的实体。在程序设计中,用属性、事件和方法来说明对象,属性就是对象的数据内容,事件和方法则是对象中包含的代码。,对象(Object),11,属性(Property),用于定义对象的特征或某一方面的行为。每个对象都具有属性,属性表明了对象的一些基本特征,如大小、颜色、所处的位置等 属性构成:一方面由对象所基于的类决定;另一方面也可为其定义新的属性对象的每一种属性,都是与其它对象加以区别的特性,都具有一定的含义,并可赋予一定的值。属性值:对象各属性的具体内容指定可设置内容:由用户(设计者)设置不可设置内容:只读,12,事件(Event),事件(Event)是每个对象可用以识别和响应的某些行为和动作。可编写相应的程序代码对事件动作进行响应。事件是一种预先定义好的特定动作,被用户行为或系统事件激活,每个对象都可以对相关事件的动作进行识别和响应。在多数情况下,事件是由用户的交互行为产生的。不同对象能够识别的事件内容是不一致的,在VFP中,事件集合是固定的(由系统指定),用户不能进行扩充。(即用户不能自己创建新事件),13,方法(Method),是对象能够执行的一个操作流程方法是与对象相关联的过程,也称方法程序方法程序有系统提供的,也可由用户根据需要自己创建VFP方法也均有名称标识,通过名称使用例:release方法程序也往往与对象事件相关联方法实际上就是对象的内部过程(函数),每个类型的对象都有它自己的方法集。例如在命令按钮对象中,调用Move方法可以移动按钮的位置。与事件不同的是,方法可以由用户进行扩展。,14,二、基类,基类:VFP系统提供的内部定义的类子类:引用VFP基类或其他子类建立的新类用户自定义类:与基类相似,由用户自定义,但无可视的表示形式,VFP基类,派生,子类,子类,子类,15,容器类(Container classes)是能够包容其它类的基类容器类对象可以包含其它对象容器类对象可以作为所包含的对象的父对象 控件类(Control classes)不能够包容其它类,但可以放在容器类中的基类控件类对象可以包含在容器中不能作为其它对象的父对象,容器类与控件类,16,VFP的29个基类,1-20为标准类(控件)(控件箱中带)兰色字:容器类,其余为非容器类(控件类),17,容器类,18,基类的最小属性集,19,基类的最小事件集,20,三、处理对象,创建对象:基类 定义的子类 用户子定义类方式:编程 可视化开发工具设计,对象,21,容器类:包含了一个“容器”基类控件类:包含了一个“控件”基类 基于它们均可生成对象 VFP中主要以表单(或表单集)为最高容器层,其它基类对象可以在其中生成,成为被表单(或表单集)包容的对象;层层相生,层层包容,最终形成表单(或表单集)的对象群体。一个面向对象的程序就是由一组相关的对象群体以及它们的属性、事件、方法集合而成的整体。,22,层次体系示意图,表单集,表单,容器,控件,23,1.引用对象,分类绝对引用和相对引用何时要引用对象当要设置或取得对象的某个属性的值时当要执行对象的某个方法事件时容器层次体系容器与容器中的控件是上下层次的关系一个应用程序的最高层次是各种活动表单或表单集,最低层次是一个非容器类控件对象或是一个不包含任何控件的容器类对象,24,表单集“表单集1”(该对象的Name属性为FormSet1)中包含2个表单“Form1”和“Form2”;表单“Form1”中包含2个文本框、1个选项按钮组、1个页框;页框中包含2个选项卡式页面Page1和Page2;页面“Page1”中包含1个表格“Grid1”;表格中包含2个列控件对象;列控件又包括标头和文本框控件。,25,绝对引用:从容器的最高层次引用对象,给出对象的绝对地址例:表单Form1对象:FormSet1.Form1 表格的第一列中的文本框Text1对象:注意!引用时按层次关系指明关联对象名称,并用“.”隔开,绝对引用,26,相对引用:在容器层次中相对于某个容器层次的引用相对引用通常运用于某个具体对象的事件处理代码或方法程序代码中,即在某个容器对象的事件处理代码或方法程序中对所包容的对象的引用,引用时可以直接使用其对象名相对引用时,所涉及到的一些关键字(表5-5)例:在文本框Text1中引用表单Form1:THISFORM 或 THIS.PARENT,相对引用,27,相对引用对象时所用的关键字,28,2.设置对象属性,每个对象都有属性,可以对对象设置属性属性可以在设计时设置也可在运行时设置,但也有一些属性是只读的。设计时修改属性在“属性”窗口中进行程序代码中,用以下语法进行设置 引用对象.属性=值例:绝对引用FormSet1.Form1.Text1.Value=DATE()FormSet1.Form1.Text1.ForeColor=RGB(0,0,0)FormSet1.Form1.Text1.BackColor=RGB(192,192,192)FormSet1.Form1.Text1.FontName=“黑体”,29,引用一个对象的多个属性和方法(重要)如:with(点不能放在此处).Value=DATE().ForeColor=RGB(0,0,0).BackColor=RGB(192,192,192).FontName=“黑体”endwith引用容器中的多个对象:如:With Thisform.txtXh.backcolor=rgb(128,0,0).txtXm.backcolor=rgb(0,128,0)Endwith,30,3.调用对象的方法程序,方法程序是对象能够执行的一个操作,是和对象相联系的过程调用语法引用对象.方法程序1.释放表单:Thisform.release2.显示表单Form1,并将焦点设置在文本框Text2上:FormSet1.Form1.show FormSet1.Form1.Text2.SetFocus 3.有返回值的方法程序以圆括号结尾,如 ApplicationObject.Quit()4.如有参数传递给方法程序,该参数应放在括号中.,31,方法实际上就是对象的内部过程或函数,每个类型的对象都有它自己的方法集。例如在命令按钮对象中,调用Move方法可以移动按钮的位置。与事件不同的是,方法可以由用户进行扩展。表单对象的常用方法:Refresh-重画表单和控件,刷新表单中的所有值Show-显示表单Hide-隐藏表单Release-从内存中释放表单,32,4.对象对事件的响应,事件是对象识别的一个动作,用户可以编写相应的代码对此动作进行响应若对象的某个事件没有相关的程序代码,则该事件发生时,对象不会发生任何操作.VFP对象事件集合是固定的用户不能创建新的VFP对象事件.事件一般是由用户的交互方式触发的,如单击或双击鼠标,按下键盘上的键,也有些是被系统触发的.在某事件没有发生时,用户可以显式地调用与该事件相关的过程.如语句:this.Pmand1.click,33,四、相关事件,每个对象都有与之相关的事件集合。对于已创建的多个对象,用户根据需要可以为某个或某些事件配置相应的事件处理代码,使得应用程序在运行过程中根据所发生的事件作出相应的处理,34,1.核心事件,核心事件集(表5-6),基类的事件集合是固定的,不能进行扩充。每个类都可识别固定的默认事件集合,它的最小事件集包括Init、Destroy和Error事件.,教材表5-6列出了Visual FoxPro中的核心事件集,这些事件适用于大多数的对象,35,表5-6 核心事件集,36,在实际应用中,控件对象一般都被包含在容器对象中,如命令按钮、文本框包含在表单中,页面包含在页框中等,那么当用户单击命令按钮时,是命令按钮的Click事件被触发,还是表单的Click事件被触发,或者是两个对象的Click事件都被触发?实际上,当某事件发生时,只有与事件相关联的最里层对象识别该事件,更高层的容器不识别这个事件。因此当用户单击命令按钮时,只有该命令按钮的Click事件被触发,而包含命令按钮的容器表单,则不识别这个Click事件。即使该命令按钮没有与Click事件相关联的事件代码,而表单有自己的Click事件代码,也不会执行表单的事件代码。,2.容器层次和类层次中的事件,37,例如:在图所示的表单中有一个命令按钮,表单设置了Click事件和DblClick事件的处理代码;命令按钮仅设置了Click事件的处理代码,那么当用户单击命令按钮时,不会触发表单的Click事件,38,对于表格控件来说,表格包含列控件,列控件又包含标头和文本框控件。当事件发生时,只有与事件相关联的最里层对象识别该事件,更高层的容器不识别该事件,如图所示,39,例外:对于选项按钮组与命令按钮组来说,组中个别按钮如果没有编写事件处理代码,则当事件发生时将执行组事件的处理代码。例如,在如图所示的表单中有一个选项按钮组(设置Click事件处理代码),该选项按钮组中有二个选项按钮(选项按钮Option1有Click事件处理代码而选项按钮Option2无Click事件处理代码),则当用户单击Option1时执行与之相关联的事件代码,不执行按钮组的Click事件处理代码,但当用户单击Option2时执行按钮组的Click事件处理代码。,40,基于事件驱动的编程技术不同于传统的过程化程序设计,程序的执行顺序不是在设计时确定的,而是取决于对象事件的顺序。有时一个用户动作只触发一个事件,而有些情况下会有多个事件接连发生,如包含多个对象的表单被启动运行的时候,这样的情况下,了解事件发生的顺序是很重要的,否则就无法确定该往哪个事件中写入怎样的代码。,3.事件激发的顺序 表5-7,41,4.常用事件 P157160,鼠标事件键盘事件表单事件控件焦点事件数据环境事件,42,五、事件驱动和事件循环,1.事件驱动面向对象程序设计(OOP):程序代码的编写是围绕各个对象进行的,程序代码的执行则总是由对象某个事件的发生引起的.即 OOP设计的应用程序:其结构是由组成它的对象结构决定的,其功能的实现是由各对象的事件驱动的.,43,结构化程序设计:按顺序过程驱动,顺序执行程序:开始-中间-结束面向对象程序设计(OOP):按事件驱动,即程序的执行流程是靠各对象事件的发生来控制的:实际执行时,用户可以通过引发不同的事件而安排程序执行的顺序,44,事件循环的建立:使整个应用系统处于接受事件的交互式等待状态 事件循环建立命令:READ EVENTS-启动事件处理程序流程 事件循环的终止:使整个应用系统终止事件的交互式访问状态 事件循环终止命令:CLEAR EVENTS-停止事件处理程序流程,2、事件循环 OOP的事件驱动执行方式,要求在设计时,必须创建相应的事件循环,

    注意事项

    本文(VFP语言基础-面向对象的程序设计.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开