1.基本概念
面向对象的程序设计是通过对类、子类和对象等的设计来体现的,类是面向对象程序设计技术的核心。
财管家园 fs119.net
类:定义了对象特征以及对象外观和行为的模板。
财软联 盟 fs119.net
类的特征:
财,软联盟,fs119.net
封装性:隐藏了类中对象的内部数据或操作细节,只看到外表信息。
财软,联盟,fs119.net
继承性: 财软,联盟,fs119.net
任何类都可以从其它已有的类中派生,新类保持了父类中的行为和属性,但增加了新的功能。体现了面向对象设计方法的共享机制。
财管家园.fs119.net多态性:相同的操作可作用于多种类型的对象上,并获得不同的结果。 财管家.园.fs119.net
抽象性:提取一个类或对象与众不同的特征,而不对该类或对象的所有信息进行处理。 财软,联盟,fs119.net
基类:
财管 家园 fs119.net
系统本身提供的类称为基类。基类包括容器类和控件类。容器类是其他对象的集合,如表格、选项按钮组;控件类是单一的对象,不包含其他对象,如命令按钮、文本框。 财管家,园,fs119.net
子类:
财管,家园,fs119.net以其他类定义为起点,对某一对象所建立的新类。新类将继承任何对父类所做的修改。 财软 联盟 fs119.net
类库:
财软联盟 fs119.net存储类的文件,每一个以可视方式设计的类都存储在一个类库中。类库文件的扩展名为.VCX。
财管 家园 fs119.net对象:是类的一个实例,包括了数据和过程。具有所在类所定义的全部属性和方法。 财 软联盟 fs119.net
VFP有两种对象:容器对象和控件对象。 财软.联盟.fs119.net
属性:控件、字段或数据库对象的特性。
财软联盟 fs119.net
事件:由对象识别的一个动作。 财.管家园.fs119.net
方法:与对象相联系的由程序执行的一个处理过程,即处理事件的一组代码。 财.软联盟.fs119.net
用户不可以为对象创建新的事件,但可以创建新的方法程序。 财管家 园 fs119.net
2.VisualFoxPro基类 财 软联盟 fs119.net
从下述VisualFoxPro基类中,可以派生子类或创建对象。
财.软联盟.fs119.net
注:#这些类是父容器的集成部分,在类设计器中不能子类化。
财管家园,fs119.net
财软联盟,fs119.net
1.创建类的方法
(1)类设计器
财 软联盟 fs119.net
(2)表单设计器 财软联,盟,fs119.net
(3)编程方式
财 管家园 fs119.net
2.用类设计器创建类
使用“类设计器”能够可视化地创建并修改类。类存储在类库(.VCX)文件中。 财软联,盟,fs119.net
(1)创建新类
财管家 园 fs119.net
可以用三种方法(文件菜单、项目管理器、CREATECLASS命令)打开类设计器并在其中创建新类,且在设计时就能看到每个对象的最终外观。 财软.联盟.fs119.net
步骤: 财管家园 fs119.net
单击文件菜单中的新建
→选择类,新文件 →在对话框中给出新类的名称、新类基于的类以及保存新类的类库 → 进入类设计器< → 根据需要在基类的基础上进行所需修改 → 关闭设计器并确定保存。 财 管家园 fs119.net
(2)为类指定设计时的外观 财管,家园,fs119.net
1)为类设置一个工具栏图标 财,软联盟,fs119.net
在类设计器中从类菜单中选择类信息
→打开类信息对话框,在工具栏图标框中键入.BMP文件的名称和路径。 财管家园 fs119.net
附注:
财软联 盟 fs119.net工具栏图标的.BMP文件必须是15x16象素点大小。如果图片过大或过小,它将被调整到15x16象素点,图形可能变形。 财管家园.fs119.net
2)为类设置一个容器图标 财管家,园,fs119.net
打开类设计器从类菜单选择类信息
→在容器图标框中键入将在表单设计器中的控件工具栏按钮上显示的.BMP文件名称和路径。 财 管家园 fs119.net
(3)创建类库
可以用三种方法创建类库。 财管家园.fs119.net
1)在创建类时,在新类对话框的“存储于”框中指定一个新的类库文件。 财管,家园,fs119.net
2)使用CREATECLASS命令,同时指定新建类库的名称。 财管.家园.fs119.net
例如,下面的语句创建了一个名为myclass的新类和一个名为new_lib的新类库: 财软.联盟.fs119.net
CREATECLASSmyclassOFnew_libASCUSTOM
财管,家园,fs119.net
3)使用CREATECLASSLIB命令。 财软 联盟 fs119.net
例如,在命令窗口键入下面的命令,可以创建一个名为new_lib的类:
财软.联盟.fs119.net
CREATECLASSLIBnew_lib 财,软联盟,fs119.net
(5)修改类定义
在创建类之后,还可以修改它,对类的修改将影响所有的子类和基于这个类的所有对象。也可以增加类的功能或修改类的错误,所有子类和基于这个类的所有对象都将继承修改。在项目管理器中选择所要修改的类或使用MODIFYCLASS命令进行修改。
财管家园 fs119.net
(6)将表单和控件保存为类
可以将表单或表单上的控件子集保存为类定义。如果打算创建基于表单的子类,或在其他表单中重新使用这些控件,可将表单作为类定义来保存。
财管,家园,fs119.net
从文件菜单中选择另存为类
→在另存为类对话框中,选择当前表单或选定控件 →在“类名”框中输入类的名称 →在文件框中输入保存类的文件名 →选择确定按钮。 财软联盟,fs119.net
财管家园 fs119.net
财软联盟 fs119.net
财管家园.fs119.net
财,软联盟,fs119.net
3.用编程方式创建类 财软,联盟,fs119.net
在程序窗口中建立一个定义类的程序文件(扩展名为.PRG),然后执行该程序。 财软 联盟 fs119.net
4.将类添加到表单、表单集和工具栏中 财管 家园 fs119.net
(1)注册一个类库
从工具菜单中选择选项
→在选项对话框中选择控件选项卡 →选择可视类库并选择添加按钮 →在打开对话框中选择要注册的类库并选择打开 →选择确定按钮。 财 管家园 fs119.net
(2)给子类增加功能 财管,家园,fs119.net
使用作用域操作符(::)可以在子类上调用父类的代码,引用父类的方法。 财软联,盟,fs119.net
调用父类方法的语法是:ParentClass::Method() 财管家,园,fs119.net
(3)将属性和方法添加到类 财软联,盟,fs119.net
可以向新类中添加任意多的新属性和新方法。属性保存一个值,而方法则保存调用时可以运行的过程代码。 财,管家园,fs119.net
从类菜单选择新属性或新方法
→在新属性对话框中键入属性或方法的名称 →指定它是否受保护。 财,管家园,fs119.net
5.类浏览器
财管,家园,fs119.net
(1)类浏览器的作用
财软联盟 fs119.net
可创建子类,把类从一个类库复制到另一类库,删除类和库文件,重命名类或者重新定义类关系。 财软.联盟.fs119.net
注意:如果要对类进行删除、重命名或重定义,则基于此类的表单可能不能正确运行。 财.管家园.fs119.net
(2)添加一个子类
财软.联盟.fs119.net
在类浏览器中打开类库
→选择要从中派生子类的类,然后选择新类按钮 →<在新类对话框中输入新子类名 →在类设计器中定义并保存子类。 财.软联盟.fs119.net
(3)把类从一个类库复制到另一类库中 财软联,盟,fs119.net
在类浏览器中打开源类库
→从工具菜单中打开类浏览器的第二个实例,并选择目标库文件 →在源类库中选择要复制的类,然后在按住Ctrl键的同时,把位于类列表上方的类图标拖到目的库中的类图标上。若不同时按住Ctrl键则是移动。 财软联,盟,fs119.net
(4)把多个类从一个类库文件复制到另一个类库文件中
财 软联盟 fs119.net
在类浏览器中打开源类库
→如果要筛选类列表,则在类型框中键入筛选条件以限定想要从文件中复制的类 →从工具菜单中,打开类浏览器的第二个实例,并选择目标库文件 →在源类库中,选择要复制的类库文件,然后在按住Ctrl键的同时,把位于类列表上方的类图标拖到目标库中的类图标上。 财,软联盟,fs119.net
(5)删除类、类库或表单
1)在类浏览器中打开类库或表单。
财软联盟.fs119.net
2)在类列表中,选择要删除的类、类库或表单,然后选择删除按钮。对类来说,它在库中的记录标有删除标记,下一次就可选择清除类库;对类库和表单来说,文件是从磁盘中删除。
财软 联盟 fs119.net
(6)重命名类库中的类,
财软联盟.fs119.net
在类浏览器中打开类库
→在类列表中,选择要重命名的类,然后选择重命名按钮 →在重命名类对话框中,输入新的名称,然后选单击重命名。 财软联盟,fs119.net
注意:如果对具有相关子类的类重命名,则子类将不能引用从重命名类中继承下来的属性。
财软联盟.fs119.net
(7)更改一个类的父类
财管家园.fs119.net
在类浏览器中打开类库
→在类列表中,选择想要重定义的类,然后选择重定义按钮 →在重定义对话框的为框中,输入新的父类名。新父类与原父类必须是来源于同一基类 →在基于框中,选择或输入类库文件名。 财软联,盟,fs119.net
(8)定制类浏览器
可更改类浏览器的属性、事件和方法。可通过程序来操作类浏览器:
财管家.园.fs119.net
1)打开类浏览器将自动创建公共变量_oBrowser,可使用此变量来引用或操作类浏览器表单,如同对任何表单对象一样。
财,软联盟,fs119.net
2)对要更改的类浏览器的属性进行设置。 财 管家园 fs119.net
例如,在打开类浏览器之前,可通过下列命令把类浏览器的标题属性设置为Hello: 财管,家园,fs119.net
_OBROWSER.Caption="Hello"
财.管家园.fs119.net
_OBROWSER.Left=10 财软联.盟.fs119.net
3)打开类浏览器,创建一个实例。 财软,联盟,fs119.net
例如,为了打开类浏览器,可输入代码:DO(_BROWSER) 财软联盟.fs119.net
财管.家园.fs119.net
6.3创建并处理对象 财管.家园.fs119.net
1.创建对象 财管家 园 fs119.net
(1)编程方式 财管.家园.fs119.net
先创建一个类,再用CREATEOBJECT()函数来创建。 财软 联盟 fs119.net
(2)可视化方式
财软联盟 fs119.net
用表单设计器创建。 财管家.园.fs119.net
2.引用对象 财软联.盟.fs119.net
引用对象时,对象与对象之间、对象与属性之间需用分隔符.进行分隔。
财.软联盟.fs119.net
(1)绝对引用 财管.家园.fs119.net
从容器的最高层引用对象,给出对象的绝对地址。如:form1.text1.value 财,管家园,fs119.net
(2)相对引用 财软联盟 fs119.net
在容器层次中相对于某个容器层次的引用。如:thisform.text1.value
财管家.园.fs119.net
财,软联盟,fs119.net
财软联.盟.fs119.net
系统变量_SCREEN表示屏幕对象,与ActiveForm等组合可以在不知道表单名的情况下处理活动表单。
财管家园,fs119.net
财管家园.fs119.net
财 管家园 fs119.net
财管家,园,fs119.net
财软.联盟.fs119.net
3.设置对象的属性 财软联.盟.fs119.net
(1)可以在属性窗口中进行可视化设置 财软联盟.fs119.net
(2)可以在程序中用如下格式进行设置: 财软联盟,fs119.net
引用对象.属性=值
财.软联盟.fs119.net
如:thisform.text1.value="只要功夫深,铁棒磨成针。"
财管家园 fs119.net
想一次设置多个属性时,可以采用WITH……ENDWITH语句。 财软联盟.fs119.net
如:WITHform1.text1
财管家园.fs119.net
.Value="书山有路勤为径"
财.软联盟.fs119.net
.ForeColor=rgb(255,0,0) 财管家园.fs119.net
.FontSize=18 财管家 园 fs119.net
.FontName="隶书" 财软联,盟,fs119.net
.FontBold=.T.
财管.家园.fs119.net
ENDWITH 财 管家园 fs119.net
4.调用对象的方法程序 财软联盟,fs119.net
若对象已经创建,可以在应用程序的任何地方调用该对象的方法程序。调用方法程序的格式为:引用对象.方法程序 财软.联盟.fs119.net
如:Form1.Show
财软.联盟.fs119.net
5.对象对事件的响应 财软联盟.fs119.net
当事件发生时,该事件的过程代码就将被执行。
财软联盟.fs119.net
用编程方式可以使用MOUSE命令产生CLICK、DOUBLECLICK、MOUSEMOVE、DRAGDROP事件,使用ERROR命令产生ERROR事件,或使用KEYBOARD命令产生KEYPRESS事件,除此之外不能用其他的程序设计方法产生其他事件,但可调用与它们相关的过程。
财管.家园.fs119.net
财.软联盟.fs119.net
财管家园 fs119.net
1.VFP中的事件 财软联,盟,fs119.net
一些核心事件和触发时间 财软,联盟,fs119.net
2.事件循环 财软 联盟 fs119.net
VFP6.0中用READEVENTS命令建立循环,用CLEAREVENTS命令终止循环。 财管家园,fs119.net
利用VFP6.0设计应用程序时,必须创建事件循环,否则不能正常运行。READEVENTS命令通常出现在应用程序的主程序中,同时必须保证主程序调出的界面中有发出CLEAREVENTS命令的机制,否则程序进入死循环。
财软 联盟 fs119.net
3.方法
财软联,盟,fs119.net
财管家园 fs119.net
财软联盟.fs119.net
财管家.园.fs119.net
财管家,园,fs119.net
财管家,园,fs119.net
Google.cn搜索相关文章:
谷歌中搜索全球网 VFP基础教程第六章面向对象的程序设计
百度中搜索 VFP基础教程第六章面向对象的程序设计
谷歌中搜索www.fs119.net VFP基础教程第六章面向对象的程序设计
下一篇:VFP基础教程第五章创建查询和视图