面向对象程序设计基础1.ppt_第1页
面向对象程序设计基础1.ppt_第2页
面向对象程序设计基础1.ppt_第3页
面向对象程序设计基础1.ppt_第4页
面向对象程序设计基础1.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 面向对象程序设计基础,主要内容,8.1 面象对象的概念 8.2 VFP6对面向对象方法的支持 8.3 类与对象的创建 8.4 对象的相关操作 复习思考题,8.1 面象对象的概念,8.1.1类和对象的基本概念 类是具有相同属性特征和行为规则的一组对象的抽象描述而对象是类的具体实例。 8.1.2对象的属性、事件和方法 1.对象的属性 对象的属性(Attribute)特征标识了对象的物理性质,对象的每一种属性,都是与其它对象加以区别的特性 。 2.对象的事件和方法 对象的行为特征描述了对象可执行的行为动作。对象一般都具有特定的行为动作。 事件(Event)是由外部实体作用在“对象”上的一个动

2、作。 方法(Method)是与对象相关联的过程。,8.1 面象对象的概念,8.1.3类的划分及类的特征 1.类的划分 类可以划分为基类和子类,也叫根类和派生类。以某个类(父类)为起点创建的类称为子类。子类以其基类为起点,并可继承基类的特征。 2.类的特性 类具有继承性、封装性和多态性等特性。,8.2 VFP6对面向对象方法的支持,8.2.1 VFP6中的类 VFP6系统为用户提供了29个基类 ,基类又可以分成容器类和控件类。 (1)容器类(Container Class)可以容纳其它对象。 (2)控件类(Control Object Class)不能容纳其它对象。,8.2 VFP6对面向对象方

3、法的支持,8.2.2 属性 1.对象的属性 属性是用来描述对象特征的参数。它可以描述一个对象的状态或某一方面行为特征。对象的每个属性都具有一定的含义,可对其进行设置或赋值。任何一个基类对象都有它的属性。以命令按钮为例,其位置、大小、颜色、以及该按钮面上是显示文字还是图形等状态,都可以用属性来表示。 2.对象的属性窗口,8.2 VFP6对面向对象方法的支持,8.2.3 事件 事件是对象可以识别和响应的行为和动作。事件是预先定义好的动作,由用户或系统激活。一个对象可以有多个事件,但每个事件都是由系统预选规定的。一个事件对应于一个程序,称为事件过程。,8.2 VFP6对面向对象方法的支持,8.2 V

4、FP6对面向对象方法的支持,1.事件驱动工作方式 事件一旦被触发,系统马上就会执行与该事件相对应的过程。待事件过程执行完毕后,系统又处于等待某事件发生的状态,这种程序执行方式明显地不同于面向过程的程序设计,称为应用程序的事件驱动工作方式。 2.为事件(或方法程序)编写代码 8.2.4方法 方法是附属于对象的行为和动作。,8.3 类与对象的创建,8.3.1 类的创建 1.使用类设计器创建类 有三种方法可以进入“新建类”对话框:从项目管理器中新建类、从文件菜单中新建类、直接在命令窗口中键入CREATE CLASS命令。 命令格式1:CREATE CLASS 命令格式2:CREATE CLASS O

5、F ,8.3 类与对象的创建,例8.1 建立一个“退出”命令按钮新类,要求其Caption属性默认为“退出”,退出时带询问功能。 例8.2 使用自定义类创建对象,创建一个只有“退出按钮”对象的简单表单。,8.3 类与对象的创建,2.使用编程方式创建类 在VFP6中,定义类除了可以使用类设计器外,还可以使用Define Class命令编程来实现。 命令格式: Define Class As object.Property=Expression Add Object As with PropertyList Procedure Name EndProcedure EndDeifine,8.3 类与

6、对象的创建,功能:由给定父类产生新类。新类以为父类,以为名,含有以为名的对象,具有指定的属性和指定的事件或方法代码。其中: (1)object.Property=Expression表示对属性进行设置,是可选项; (2)Add Object As with PropertyList表示给类添加对象,并指定对象的属性且设置属性值,也是可选项; (3)Procedure NameEndProcedure表示为类或子类指定事件或方法的程序代码,也是可选项。,8.3 类与对象的创建,例8.3 定义一个带“退出按钮”的新的表单类“MyFormClass”,并以这个类创建一个对象,“退出按钮”的功能见例8

7、.1。 编写程序P8-1.prg,操作步骤如下: (1)在命令窗口中键入:MODI COMM P8-1 (2)在随之出现的程序窗口中输入下列内容: Form1=createobject(Myformclass) Height=30 Procedure command1.Click&为命令按钮对象添加Click事件方法程序 RValue=messagebox(真的要退出吗?,4+32+0,退出确认) if RValue=6 thisform.release endif EndProc EndDefine (3)保存程序,并单击“程序”菜单下的“运行”,8.3 类与对象的创建,8.3.2 由类创建

8、对象 对象是在类的基础上派生出来,只有具体的对象才能实现类的事件或方法的操作,定义对象可以通过在表单设计器中使用自定义类创建对象,也可以通过编程方式定义对象。 1.在表单设计器中使用自定义类创建对象 操作步骤参见例8.2。 2.使用编程方式创建对象 使用CreateObject()函数可利用已建的类定义对象。 命令格式: =CreateObject 功能: 利用以为名的类,定义以为名的对象。,8.4 对象的相关操作,8.4.1 引用对象并设置对象的属性 1.引用规则 (1)对象的引用通常用以下关键字开头 THISFORMSET:表示当前表单集 THISFORM:表示当前表单 THIS:表示当前

9、对象 PARENT:表示当前对象的上一级包容对象,8.4 对象的相关操作,(2)引用格式 引用关键字后跟一个圆点号“.”,再写出被引用对象或者对象的属性,事件或方法。 例如:THISFORM.RELEASE &表示调用本表单的RELEASE方法程序 THIS.CAPTION &表示引用当前对象的CAPTION属性 由于容器类对象的存在,对象是可以进行嵌套的。,8.4 对象的相关操作,VFP6有两种对象引用方式,即绝对引用和相对引用。 2.绝对引用 绝对引用是指在引用对象时从顶级容器对象开始,一级一级往下引用,直至到所指定对象的一种引用方式。 例如:若表单myform1中有一个命令按钮Comma

10、nd1,在引用Command1的Caption属性时可以按下列方式引用:Thisform.Command1.Caption&Thisform是这里的顶级容器 又如:若表单myform1中有一个命令按钮组CommandGroup1,命令按钮组中有两个命令按钮Command1和Command2,则在引用Command2的Caption属性时可以按下列方式引用: Thisform. CommandGroup1.Command2.Caption &Thisform是这里的顶级容器,8.4 对象的相关操作,3.相对引用 从当前对象开始一级一级往下引用,直至到所指定对象的一种引用方式。 例如:若表单myf

11、orm1中的有一个命令按钮Command1,如果Command1是当前选定对象,在引用Command1的Caption属性时可以按下列方式引用: This.Caption&This代表当前对象command1 或Parent.Command1.Caption&Parent代表当前对象的上一级对象(表单myform1) 又如:若表单myform1中的有一个命令按钮组CommandGroup1,命令按钮组中有两个命令按钮Command1和Command2,如果CommandGroup1是当前选定对象,则在引用Command2的Caption属性时可以按下列方式引用: This.Command2.C

12、aption&This代表当前对象CommandGroup1 或Parent. CommandGroup1.Command2.Caption &Parent代表当前对象的上一级对象(表单myform1),8.4 对象的相关操作,4.对象属性的设置 在VFP6中,一个对象的属性可以在设计时通过属性窗口设置,也可以在运行中设置或修改。为了引用一个属性,需使用如下格式: 命令格式: .=值 功能: 对指定对象的指定属性设置属性值。其中对象的引用方式可以使用绝对或相对引用方式。例如: Thisform.Caption=”我的表单” &设置当前表单的标题为“我的表单” Thisform.Command1

13、.Caption=”退出” &设置表单中的命令按钮Command1的标题为“退出” This.Visible=.F. &设置当前对象为隐藏对象,8.4 对象的相关操作,利用WITHENDWITH结构引用对象属性: 例如,对于myform1表单中Command1命令按钮进行多个属性设置,可采用如下方式: WITH Thisform.Command1 .Caption=确定 .Visible=.T. .FontSize=18 .ForeColor=RGB(255,0,0) ENDWITH,8.4 对象的相关操作,8.4.2对象事件过程或方法程序的调用 命令格式: . . 其中对象的引用方法仍然为上

14、述的绝对或相对引用方式。 功能: 调用指定对象的事件过程或方法程序 例如: Thisform.Show&调用表单的Show方法,显示当前表单 Thisform.Refresh&调用表单的Refresh方法,刷新表单 Thisform.Release&调用表单的Release方法,释放表单 Thisform.Text1.SetFocus&调用表单中的文本框Text1的SetFocus方法,让文本框聚焦 Thisform.Command1.Click&调用表单中的命令按钮Command1的Click事件过程,8.4 对象的相关操作,例8.4 设计一个能改变标签文字颜色的表单,如图8.11所示。,8.4 对象的相关操作,例8.5 设计一个简单的绘图表单,要求在表单上拖动鼠标时能画出线来。即用户按下鼠标键并拖动鼠标便可以在表单上画出鼠标移动的轨迹线;而当鼠标键释放时,鼠标移动不画线。设计效果如图8.13所示。,图8.13 绘图表单,复习思考题,1.什么是面向对象程序设计?面向对象程序设计和面向过程程序设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论