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

上传人:石*** 文档编号:65721985 上传时间:2022-12-06 格式:PPT 页数:43 大小:2.32MB
返回 下载 相关 举报
语言基础面向对象的程序设计精.ppt_第1页
第1页 / 共43页
语言基础面向对象的程序设计精.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《语言基础面向对象的程序设计精.ppt》由会员分享,可在线阅读,更多相关《语言基础面向对象的程序设计精.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、语言基础面向对象的程序设计第1页,本讲稿共43页 本本 章章 重重 点点n结构化程序设计结构化程序设计u顺序、选择、顺序、选择、循环循环u过程和函数过程和函数n面向对象的程序设计面向对象的程序设计u类和对象类和对象u属性、方法、事件属性、方法、事件2第2页,本讲稿共43页结构化程序设计结构化程序设计到到面向对象程序设计面向对象程序设计OOP两种程序设计方法两种程序设计方法 1本质本质:功能设计:功能设计 2方法方法:自顶向下、功能分解,从:自顶向下、功能分解,从外部功能上模拟客观世界外部功能上模拟客观世界 3开发过程开发过程:从:从“做什么做什么”到到“如如何做何做”4优点优点:系统结构性强、

2、便于:系统结构性强、便于设计和理解设计和理解 5缺点缺点:维护困难:维护困难3第3页,本讲稿共43页面向对象的程序设计方法面向对象的程序设计方法n方法:基于问题对象的方法:基于问题对象的自底向上自底向上的功能综合的功能综合,从,从内部结构上模拟客观世界内部结构上模拟客观世界n开发过程:从开发过程:从“用什么做用什么做”到到“要做什么要做什么”n优点优点u以对象为中心的问题求解方法简化程序设计,更接以对象为中心的问题求解方法简化程序设计,更接近现实世界,可降低开发和维护的费用近现实世界,可降低开发和维护的费用u提高程序代码的可重用性提高程序代码的可重用性u可以和各种模型自然的融合可以和各种模型自

3、然的融合5.3 面向对象的程序设计基础面向对象的程序设计基础4第4页,本讲稿共43页一、类和对象概述一、类和对象概述1n 类类:所谓类所谓类(Class),就是一组具有相同结构、,就是一组具有相同结构、性质、共同操作特点及遵守相同规则的对象性质、共同操作特点及遵守相同规则的对象的集合。的集合。它是对某种具有共同属性及其行为特征的它是对某种具有共同属性及其行为特征的对象对象群体群体的抽象描述。的抽象描述。n 对象:对象:是类的一个实例(包含具体数据、过程是类的一个实例(包含具体数据、过程定义)。定义)。5第5页,本讲稿共43页一、类和对象概述一、类和对象概述2n类是静态概念,对象是动态概念类是静

4、态概念,对象是动态概念 “类类”定义了定义了某类对象特征以及对象外观和行为某类对象特征以及对象外观和行为的的模板模板,它刻划了一组具有共同特性的对象群体,它刻划了一组具有共同特性的对象群体 “对象对象”则是基于某种类所创建的一个实例则是基于某种类所创建的一个实例在在OOPOOP中,中,类就像是一个模板,对象都是基于这个模板生成的:类定类就像是一个模板,对象都是基于这个模板生成的:类定义了对象所具有的属性、事件和方法,从而决定了该类对象的属性和义了对象所具有的属性、事件和方法,从而决定了该类对象的属性和它的行为。它的行为。Visual FoxProVisual FoxPro系统为用户提供系统为用

5、户提供2929个基类个基类6第6页,本讲稿共43页n基类基类:VFP系统提供的内部定义的类系统提供的内部定义的类,可用于用户定可用于用户定义子类的基础义子类的基础n子类子类:是以其它类是以其它类(已有的已有的)定义为起点定义为起点,为某一种为某一种对象所建立的新类。子类将继承任何对父类所做的对象所建立的新类。子类将继承任何对父类所做的修改修改n用户自定义类用户自定义类:与基类相似,由用户自己定义,也可与基类相似,由用户自己定义,也可用于派生子类,用于派生子类,但无可视化表示形式但无可视化表示形式类类7第7页,本讲稿共43页n继承性(继承性(inheritance)u子类沿用父类特征的能力子类沿

6、用父类特征的能力u如果父类特征发生改变,则子类将继承这些新特征如果父类特征发生改变,则子类将继承这些新特征n多态性(多态性(polymorphism)u一些关联的类包含同名的方法程序,但方法程序的一些关联的类包含同名的方法程序,但方法程序的内容可以不同内容可以不同u相同的操作作用于多种类型的对象上获得不同的结相同的操作作用于多种类型的对象上获得不同的结果,增强系统的灵活性、维护性和扩充性果,增强系统的灵活性、维护性和扩充性特性特性8第8页,本讲稿共43页n封装性封装性(encapsulation)u说明了包含和隐藏对象信息的能力说明了包含和隐藏对象信息的能力u高内聚,低耦合高内聚,低耦合n抽象

7、性(抽象性(abstraction)u提取一个类或对象与众不同的特征,而不对提取一个类或对象与众不同的特征,而不对该类或对象的所有信息进行处理该类或对象的所有信息进行处理特性特性9第9页,本讲稿共43页n对象(对象(ObjectObject)是类的实例)是类的实例。u每个对象都具有描述它特征的属性,以及附属于它每个对象都具有描述它特征的属性,以及附属于它的行为。对象把事物的属性和行为封装在一起,是一的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是个动态的概念。对象是面向对象编程的基本元素,是“类类”的具体实例。的具体实例。u每个对象都具有每个对象都具

8、有属性属性及与之相关的及与之相关的事件事件和和方法方法 在在VFP中,包含在应用程序中的表单及各种控件都中,包含在应用程序中的表单及各种控件都是对象。对象是包含数据和代码的实体。在程序设计是对象。对象是包含数据和代码的实体。在程序设计中,用属性、事件和方法来说明对象,属性就是对象中,用属性、事件和方法来说明对象,属性就是对象的数据内容,事件和方法则是对象中包含的代码。的数据内容,事件和方法则是对象中包含的代码。对象对象(Object)10第10页,本讲稿共43页属性属性(Property)n用于定义对象的特征或某一方面的行为。用于定义对象的特征或某一方面的行为。n每个对象都具有属性,属性表明了

9、对象的一些基本特征,如大每个对象都具有属性,属性表明了对象的一些基本特征,如大小、颜色、所处的位置等小、颜色、所处的位置等 n属性构成属性构成:一方面由对象所基于的类决定一方面由对象所基于的类决定;另一方面也可为另一方面也可为其定义新的属性其定义新的属性n对象的每一种属性,都是与其它对象加以区别的特性,对象的每一种属性,都是与其它对象加以区别的特性,都具有一定的含义,并可赋予一定的值。都具有一定的含义,并可赋予一定的值。u属性值属性值:对象各属性的具体内容指定对象各属性的具体内容指定u可设置内容:由用户(设计者)设置可设置内容:由用户(设计者)设置u不可设置内容:只读不可设置内容:只读11第1

10、1页,本讲稿共43页事件事件(Event)n事件事件(Event)是每个对象可用以识别和响应的某是每个对象可用以识别和响应的某些行为和动作。些行为和动作。可编写相应的程序代码对事件可编写相应的程序代码对事件动作进行响应。动作进行响应。n事件是一种预先定义好的特定动作,被用户行事件是一种预先定义好的特定动作,被用户行为或系统事件激活,每个对象都可以对相关事为或系统事件激活,每个对象都可以对相关事件的动作进行识别和响应。在多数情况下,事件的动作进行识别和响应。在多数情况下,事件是由用户的交互行为产生的。件是由用户的交互行为产生的。n不同对象能够识别的事件内容是不一致的,在不同对象能够识别的事件内容

11、是不一致的,在VFP中,事件集合是固定的(由系统指定),中,事件集合是固定的(由系统指定),用户不能进行扩充。用户不能进行扩充。(即用户不能自己创建新(即用户不能自己创建新事件)事件)12第12页,本讲稿共43页方法方法(Method)n是对象能够执行的一个操作流程是对象能够执行的一个操作流程n方法方法是与对象相关联的过程,也称是与对象相关联的过程,也称方法程序方法程序n方法程序方法程序有系统提供的,也可由用户根据需要自己创建有系统提供的,也可由用户根据需要自己创建nVFP方法也方法也均有名称标识,通过名称使用均有名称标识,通过名称使用u例:例:releasen方法程序也方法程序也往往与对象事

12、件相关联往往与对象事件相关联n方法实际上就是对象的内部过程(函数),每个类型的对方法实际上就是对象的内部过程(函数),每个类型的对象都有它自己的方法集。例如在命令按钮对象中,调用象都有它自己的方法集。例如在命令按钮对象中,调用Move方法可以移动按钮的位置。与事件不同的是,方法可方法可以移动按钮的位置。与事件不同的是,方法可以由用户进行扩展。以由用户进行扩展。13第13页,本讲稿共43页n 容器类容器类(Container classes)是能够包容其它是能够包容其它类的基类类的基类u容器类对象可以包含其它对象容器类对象可以包含其它对象u容器类对象可以作为所包含的对象的父对象容器类对象可以作为

13、所包含的对象的父对象n 控件类控件类(Control classes)不能够包容其它类,但不能够包容其它类,但可以放在容器类中的基类可以放在容器类中的基类u控件类对象可以包含在容器中控件类对象可以包含在容器中u不能作为其它对象的父对象不能作为其它对象的父对象容器类与控件类容器类与控件类15第15页,本讲稿共43页VFP的的29个基类个基类1 1标签标签9 9列表框列表框1717线条线条2525自定义自定义2 2文本框文本框1010微调框微调框1818形状形状2626控件控件3 3编辑框编辑框11 11表格表格1919容器容器2727工具栏工具栏4 4命令按钮命令按钮1212图像图像2020分隔

14、符分隔符*2828表单表单5 5命令按钮组命令按钮组1313计时器计时器2121选项按钮选项按钮*2929表单集表单集6 6选项按钮组选项按钮组1414页框页框2222标头标头*7 7复选框复选框15 OLE15 OLE容器控件容器控件2323表格列表格列*8 8组合框组合框16 OLE16 OLE绑定型控件绑定型控件2424页面页面*1-20为标准类(控件)(控件箱中带为标准类(控件)(控件箱中带)兰色字:容器类,其余为非容器类(控件类)兰色字:容器类,其余为非容器类(控件类)16第16页,本讲稿共43页容器类容器类容器类容器类能包含的对象能包含的对象容器容器任意控件类任意控件类工具栏工具栏

15、任意控件类、页框、容器任意控件类、页框、容器表单集表单集表单、工具栏表单、工具栏表单表单页框、任意控件类、容器、自定义对象页框、任意控件类、容器、自定义对象表格表格表格列表格列表格列表格列标头以及除表单、表单集、工具栏、计时器和其它标头以及除表单、表单集、工具栏、计时器和其它列以外的任意对象列以外的任意对象页框页框页面页面页面页面任意控件类、容器和自定义对象任意控件类、容器和自定义对象命令按钮组命令按钮组命令按钮命令按钮选项按钮组选项按钮组选项按钮选项按钮17第17页,本讲稿共43页基类的最小属性基类的最小属性集集属性属性说明说明ClassClass该类属于何种类型该类属于何种类型Basecl

16、assBaseclass该类由何种基类派生而来该类由何种基类派生而来(Form,commandbuttonForm,commandbutton或或customcustom等)等)ClasslibraryClasslibrary该类从属于何种类库该类从属于何种类库parentclassparentclass对象所基于的类。若该类直接由对象所基于的类。若该类直接由VFPVFP基类基类派生而来,则派生而来,则ParentclassParentclass属性值与属性值与baseclassbaseclass属性值相同属性值相同18第18页,本讲稿共43页:基类的最小事件基类的最小事件集集事事 件件说说

17、明明InitInit当对象创建时激活当对象创建时激活DestroyDestroy当对象从内存中释放时激活当对象从内存中释放时激活errorerror当类中的事件或方法程序运行中发当类中的事件或方法程序运行中发生错误时激活生错误时激活19第19页,本讲稿共43页三、处理对象三、处理对象n创建对象创建对象:基类基类 定义的子类定义的子类 用户子定义类用户子定义类n方式方式:编程编程 可视化开发工具设计可视化开发工具设计 对象对象20第20页,本讲稿共43页容器类:包含了一个容器类:包含了一个“容器容器”基类基类控件类:包含了一个控件类:包含了一个“控件控件”基类基类 基于它们均可生成基于它们均可生

18、成对象对象 VFP中主要以表单(或表单集)为最高容器层,中主要以表单(或表单集)为最高容器层,其它基类对象可以在其中生成,成为被其它基类对象可以在其中生成,成为被表单(或表单表单(或表单集)集)包容的对象;层层相生,层层包容,最终形成包容的对象;层层相生,层层包容,最终形成表单(或表单(或表单集)表单集)的对象群体。的对象群体。一个面向对象的程序就是由一组相关的对象群体以及它一个面向对象的程序就是由一组相关的对象群体以及它们的属性、事件、方法集合而成的整体。们的属性、事件、方法集合而成的整体。21第21页,本讲稿共43页层次体系示意图层次体系示意图表表单单集集表表单单容容器器控控件件22第22

19、页,本讲稿共43页1.引用对象引用对象n分类分类u绝对引用和相对引用绝对引用和相对引用n何时要引用对象何时要引用对象u当要设置或取得对象的某个属性的值时当要设置或取得对象的某个属性的值时u当要执行对象的某个方法事件时当要执行对象的某个方法事件时n容器层次体系容器层次体系u容器与容器中的控件是上下层次的关系容器与容器中的控件是上下层次的关系u一个应用程序的一个应用程序的最高层次最高层次是各种活动表单或表单集,是各种活动表单或表单集,最低层次最低层次是一个非容器类控件对象或是一个不包含任何控是一个非容器类控件对象或是一个不包含任何控件的容器类对象件的容器类对象23第23页,本讲稿共43页 表单集表

20、单集“表单集表单集1”(该对象的(该对象的Name属性为属性为FormSet1)中包含)中包含2个表单个表单“Form1”和和“Form2”;表单;表单“Form1”中包含中包含2个文本框、个文本框、1个选项按钮组、个选项按钮组、1个页框;个页框;页框中包含页框中包含2个选项卡式页面个选项卡式页面Page1和和Page2;页面;页面“Page1”中包含中包含1个表格个表格“Grid1”;表格中包含表格中包含2个列控件对象个列控件对象;列控件又包括标头和文本框控件列控件又包括标头和文本框控件。24第24页,本讲稿共43页n绝对引用:绝对引用:从容器的最高层次引用对象,给出从容器的最高层次引用对象

21、,给出对象的绝对地址对象的绝对地址u例:表单例:表单Form1对象:对象:FormSet1.Form1 表格的第一列中的文本框表格的第一列中的文本框Text1对象:对象:FormSet1.Form1.Pageframe1.page1.column1.Text1注注意意!引引用用时时按按层层次次关关系系指指明明关关联联对对象象名名称称,并并用用“.”隔开隔开绝对引用绝对引用25第25页,本讲稿共43页n相对引用:相对引用:在容器层次中相对于某个容器层次的在容器层次中相对于某个容器层次的引用引用u相对引用通常运用于某个具体对象的事件处理代码相对引用通常运用于某个具体对象的事件处理代码或方法程序代码

22、中,即在某个容器对象的事件处理代或方法程序代码中,即在某个容器对象的事件处理代码或方法程序中对所包容的对象的引用,引用时可以码或方法程序中对所包容的对象的引用,引用时可以直接使用其对象名直接使用其对象名u相对引用时,所涉及到的一些关键字(表相对引用时,所涉及到的一些关键字(表5-5)u例例:在在文本框文本框Text1中引用表单中引用表单Form1:THISFORM 或或 THIS.PARENT相对引用相对引用26第26页,本讲稿共43页关键字含义ActiveForm当前活动表单ActivePage当前活动表单中的活动页面ActiveControl当前活动表单中具有焦点的控件PARENT该对象的

23、直接容器(父容器)THIS该对象THISFORM包含该对象的表单THISFORMSET包含该对象的表单集相对引用对象时所用的关键字相对引用对象时所用的关键字 27第27页,本讲稿共43页 2.设置对象属性设置对象属性u每个对象都有属性,可以对对象设置属性每个对象都有属性,可以对对象设置属性u属性可以在设计时设置也可在运行时设置,但也有一属性可以在设计时设置也可在运行时设置,但也有一些属性是只读的。些属性是只读的。u设计设计时修改属性在时修改属性在“属性属性”窗口中进行窗口中进行u程序代码程序代码中,用以下语法进行设置中,用以下语法进行设置 引用对象引用对象.属性属性=值值例:绝对引用例:绝对引

24、用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=“黑体黑体”28第28页,本讲稿共43页引用一个对象的多个属性和方法(重要)引用一个对象的多个属性和方法(重要)如如:with formset1.form1.text1 (点不能放在此处(点不能放在此处).Value=DATE().ForeColor=RGB(0,0,0).BackColor=R

25、GB(192,192,192).FontName=“黑体”endwith引用容器中的多个对象引用容器中的多个对象引用容器中的多个对象引用容器中的多个对象:如如:With Thisform .txtXh.backcolor=rgb(128,0,0).txtXm.backcolor=rgb(0,128,0)Endwith 29第29页,本讲稿共43页3.调用对象的方法程序调用对象的方法程序n方法程序方法程序是对象能够执行的一个是对象能够执行的一个操作操作,是和对象,是和对象相联系的相联系的过程过程n调用语法调用语法引用对象引用对象.方法程序方法程序1.释放表单:释放表单:Thisform.rele

26、ase2.显示表单显示表单Form1,并将焦点设置在文本框,并将焦点设置在文本框Text2上:上:FormSet1.Form1.show FormSet1.Form1.Text2.SetFocus 3.有返回值的方法程序以圆括号结尾有返回值的方法程序以圆括号结尾,如如 ApplicationObject.Quit()4.如有参数传递给方法程序如有参数传递给方法程序,该参数应放在括号中该参数应放在括号中.30第30页,本讲稿共43页 方法实际上就是对象的内部过程或函数,每个类方法实际上就是对象的内部过程或函数,每个类型的对象都有它自己的方法集。例如在命令按钮对象中,型的对象都有它自己的方法集。例

27、如在命令按钮对象中,调用调用Move方法可以移动按钮的位置。与事件不同的是,方法可以移动按钮的位置。与事件不同的是,方法可以由用户进行扩展。方法可以由用户进行扩展。n表单对象的常用方法表单对象的常用方法:Refresh-重画表单和控件,刷新表单中的所有值重画表单和控件,刷新表单中的所有值Show-显示表单显示表单Hide-隐藏表单隐藏表单Release-从内存中释放表单从内存中释放表单31第31页,本讲稿共43页4.对象对事件的响应对象对事件的响应n事件是对象识别的一个动作,用户可以编写相应的代码对此动作进事件是对象识别的一个动作,用户可以编写相应的代码对此动作进行响应行响应n若对象的某个事件

28、没有相关的程序代码若对象的某个事件没有相关的程序代码,则该事件发生时则该事件发生时,对象对象不会发生任何操作不会发生任何操作.nVFP对象事件集合是固定的对象事件集合是固定的n用户不能创建新的用户不能创建新的VFP对象事件对象事件.n事件一般是由用户的交互方式触发的,如单击或双击鼠标,按下键事件一般是由用户的交互方式触发的,如单击或双击鼠标,按下键盘上的键,也有些是被系统触发的盘上的键,也有些是被系统触发的.n在某事件没有发生时,用户可以显式地调用与该事件相关的过程在某事件没有发生时,用户可以显式地调用与该事件相关的过程.如语如语句:句:this.Pmand1.click32第32页,本讲稿共

29、43页四、相关事件四、相关事件n每个对象都有与之相关的事件集合。每个对象都有与之相关的事件集合。对于已创建的多个对象,用户根据需对于已创建的多个对象,用户根据需要可以为某个或某些事件配置相应的要可以为某个或某些事件配置相应的事件处理代码,使得应用程序在运行事件处理代码,使得应用程序在运行过程中根据所发生的事件作出相应的过程中根据所发生的事件作出相应的处理处理33第33页,本讲稿共43页1.核心事件核心事件n核心事件集(表核心事件集(表5-6)基类的事件集合是固定的,不能进行基类的事件集合是固定的,不能进行扩充。每个类都可识别固定的默认事件集扩充。每个类都可识别固定的默认事件集合,它的最小事件集

30、包括合,它的最小事件集包括Init、Destroy和和Error事件事件.教材表教材表5-6列出了列出了Visual FoxPro中的核心事件集,中的核心事件集,这些事件适用于大多数的对象这些事件适用于大多数的对象34第34页,本讲稿共43页表表5-6 核心事件集核心事件集事件事件事件被激发后的动作事件被激发后的动作LoadLoad表单或表单集被加载到内存中表单或表单集被加载到内存中 UnloadUnload从内存中释放表单或表单集从内存中释放表单或表单集 InitInit创建对象创建对象DestroyDestroy从内存中释放对象从内存中释放对象 ClickClick用户使用主鼠标按钮单击对

31、象用户使用主鼠标按钮单击对象 DblclickDblclick用户使用主鼠标按钮双击对象用户使用主鼠标按钮双击对象 RightclickRightclick用户使用辅鼠标按钮单击对象用户使用辅鼠标按钮单击对象 GotfocusGotfocus对象接收焦点,由用户动作引起对象接收焦点,由用户动作引起LostfocusLostfocus对象失去焦点,由用户动作引起对象失去焦点,由用户动作引起KeypressKeypress用户按下或释放键用户按下或释放键 MousedownMousedown当鼠标指针停在一个对象上时,用户按下鼠标按钮当鼠标指针停在一个对象上时,用户按下鼠标按钮 Mousemove

32、Mousemove用户在对象上移动鼠标用户在对象上移动鼠标 MouseupMouseup当鼠标指针停在一个对象上时,用户释放鼠标按钮当鼠标指针停在一个对象上时,用户释放鼠标按钮 interactivechangeinteractivechange以交互方式改变对象值以交互方式改变对象值 programmaticchangeprogrammaticchange以编程方式改变对象值以编程方式改变对象值 35第35页,本讲稿共43页 在在实实际际应应用用中中,控控件件对对象象一一般般都都被被包包含含在在容容器器对对象象中中,如如命命令令按按钮钮、文文本本框框包包含含在在表表单单中中,页页面面包包含含

33、在在页页框框中中等等,那那么么当当用用户户单单击击命命令令按按钮钮时时,是是命命令令按按钮钮的的Click事事件件被被触触发发,还还是是表表单单的的Click事事件件被被触触发发,或或者者是是两两个对象的个对象的Click事件都被触发?事件都被触发?实实际际上上,当当某某事事件件发发生生时时,只只有有与与事事件件相相关关联联的的最最里里层层对对象象识识别别该该事事件件,更更高高层层的的容容器器不不识识别别这这个个事事件件。因因此此当当用用户户单单击击命命令令按按钮钮时时,只只有有该该命命令令按按钮钮的的Click事事件件被被触触发发,而而包包含含命命令令按按钮钮的的容容器器表表单单,则则不不识

34、识别别这这个个Click事事件件。即即使使该该命命令令按按钮钮没没有有与与Click事事件件相相关关联联的的事事件件代代码码,而而表表单单有有自自己己的的Click事事件件代代码码,也也不会执行表单的事件代码。不会执行表单的事件代码。2.容器层次和类层次中的事件容器层次和类层次中的事件36第36页,本讲稿共43页 例如例如:在图所示的表单中有一个命令按钮,表单设置了在图所示的表单中有一个命令按钮,表单设置了Click事件事件和和DblClick事件的处理代码;命令按钮仅设置了事件的处理代码;命令按钮仅设置了Click事件的处理代事件的处理代码,那么当用户单击命令按钮时,不会触发表单的码,那么当

35、用户单击命令按钮时,不会触发表单的Click事件事件37第37页,本讲稿共43页 对于表格控件来说,表格包含列控件,列控件又包含标头和对于表格控件来说,表格包含列控件,列控件又包含标头和文本框控件。当事件发生时,只有与事件相关联的最里层对象识文本框控件。当事件发生时,只有与事件相关联的最里层对象识别该事件,更高层的容器不识别该事件,如图所示别该事件,更高层的容器不识别该事件,如图所示38第38页,本讲稿共43页例外:例外:对于选项按钮组与命令按钮组来说,组中个别按钮如果对于选项按钮组与命令按钮组来说,组中个别按钮如果没有编写事件处理代码,则当事件发生时将执行组事件的处理代没有编写事件处理代码,

36、则当事件发生时将执行组事件的处理代码。例如,在如图所示的表单中有一个选项按钮组(设置码。例如,在如图所示的表单中有一个选项按钮组(设置Click事事件处理代码),该选项按钮组中有二个选项按钮(选项按钮件处理代码),该选项按钮组中有二个选项按钮(选项按钮Option1有有Click事件处理代码而选项按钮事件处理代码而选项按钮Option2无无Click事件处理代码),则当事件处理代码),则当用户单击用户单击Option1时执行与之相关联的事件代码,不执行按钮组的时执行与之相关联的事件代码,不执行按钮组的Click事件处理代码,但当用户单击事件处理代码,但当用户单击Option2时执行按钮组的时执

37、行按钮组的Click事件处理代事件处理代码。码。39第39页,本讲稿共43页 基基于于事事件件驱驱动动的的编编程程技技术术不不同同于于传传统统的的过过程程化化程程序序设设计计,程程序序的的执执行行顺顺序序不不是是在在设设计计时时确确定定的的,而而是是取取决决于于对对象象事事件件的的顺顺序序。有有时时一一个个用用户户动动作作只只触触发发一一个个事事件件,而而有有些些情情况况下下会会有有多多个个事事件件接接连连发发生生,如如包包含含多多个个对对象象的的表表单单被被启启动动运运行行的的时时候候,这这样样的的情情况况下下,了了解解事事件件发发生生的的顺顺序序是是很很重重要要的的,否否则则就就无无法法确

38、确定定该该往哪个事件中写入怎样的代码。往哪个事件中写入怎样的代码。3.事件激发的顺序事件激发的顺序 表表5-740第40页,本讲稿共43页4.常用事件常用事件 P157160n鼠标事件鼠标事件n键盘事件键盘事件n表单事件表单事件n控件焦点事件控件焦点事件n数据环境事件数据环境事件41第41页,本讲稿共43页五、事件驱动和事件循环五、事件驱动和事件循环1.事件驱动事件驱动n面向对象程序设计面向对象程序设计(OOP):u程序代码的编写是围绕各个对象进行的程序代码的编写是围绕各个对象进行的,程序代码的执行则总是由对象某个事件的发程序代码的执行则总是由对象某个事件的发生引起的生引起的.u即即 OOP设

39、计的应用程序设计的应用程序:其结构是由组成它其结构是由组成它的对象结构决定的的对象结构决定的,其功能的实现是由各对象其功能的实现是由各对象的的事件驱动事件驱动的的.42第42页,本讲稿共43页结构化程序设计结构化程序设计:按顺序过程驱动按顺序过程驱动,顺序执行程序顺序执行程序:开始开始-中间中间-结束结束面向对象程序设计面向对象程序设计(OOP):按按事件驱动事件驱动,即程序的执行流程是靠各对象事件即程序的执行流程是靠各对象事件的发生来控制的的发生来控制的:实际执行时实际执行时,用户可以通过引发用户可以通过引发不同的事件而安排程序执行的顺序不同的事件而安排程序执行的顺序 43第43页,本讲稿共43页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁