面向对象程序设计及表单设计.ppt
《面向对象程序设计及表单设计.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计及表单设计.ppt(135页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第九章面向对象程序设计及表单设计目录9.1面向对象程序设计的概念面向对象程序设计的概念9.2VisualFoxPro中的类中的类9.3VisualFoxPro中对象的操作中对象的操作9.4表单设计表单设计9.5常用表单控件常用表单控件9.6自定义类的创建与使用自定义类的创建与使用4/14/20234/14/20231 1经济与管理学院经济与管理学院例:设计一个窗口,如下图所示窗口例:设计一个窗口,如下图所示窗口中包含两个文本框,用于输入数据,还中包含两个文本框,用于输入数据,还有一个命令按纽,单击它可以将两个文有一个命令按纽,单击它可以将两个文本框中的数相加,并在等号右边显示结本框中的数相加,
2、并在等号右边显示结果果9.1面向对象程序设计的概念在在VFP中,窗口叫做中,窗口叫做“表单表单”,表单的扩展名为,表单的扩展名为.scx。4/14/20234/14/20232 2经济与管理学院经济与管理学院CLICK事件代码:thisform.label3.caption=alltrim(str(val(thisform.text1.value)+val(thisform.text2.value)4/14/20234/14/20233 3经济与管理学院经济与管理学院事件驱动事件驱动WINDOWS程序设计主要采用程序设计主要采用的是的是事件驱动事件驱动的方法。事件是由事的方法。事件是由事件发生
3、者触发和控制的。程序员只件发生者触发和控制的。程序员只能定义这些事件的执行代码,主要能定义这些事件的执行代码,主要由用户控制事件的发生顺序。由用户控制事件的发生顺序。4/14/20234/14/20234 4经济与管理学院经济与管理学院面向对象的理论首先把现实面向对象的理论首先把现实世界中的各种事物,划分为不同世界中的各种事物,划分为不同的的类类(Class),类是抽象的概念。类是抽象的概念。类有类有“状态状态”和和“行为行为”,“状状态态”是类的静态属性,但可以通是类的静态属性,但可以通过动态的过动态的“行为行为”来改变。来改变。一个类的具体实例就是一个类的具体实例就是对象对象(Object
4、)。类是抽象的,而对象。类是抽象的,而对象是具体的。对象具有该类的状态是具体的。对象具有该类的状态和行为。和行为。4/14/20234/14/20235 5经济与管理学院经济与管理学院9.1.2对象(对象(object)客客观观世世界界里里的的任任何何实实体体都都可可以以被被看看作作是是对对象象。对对象象可可以以是是具具体的物,也可以指某些概念。体的物,也可以指某些概念。从编程的角度来看,对象是从编程的角度来看,对象是一种将数据和操作过程结合在一一种将数据和操作过程结合在一起的数据结构,或者是一种具有起的数据结构,或者是一种具有属性(数据)和方法(过程和函属性(数据)和方法(过程和函数)的集合
5、体。事实上程序中的数)的集合体。事实上程序中的对象就是对客观世界中对象的一对象就是对客观世界中对象的一种抽象描述。种抽象描述。4/14/20234/14/20236 6经济与管理学院经济与管理学院一般对象具有如下属性:(1)属性(属性(Property):属性用来:属性用来表示对象的状态。在程序设计中,表示对象的状态。在程序设计中,类或对象的类或对象的“状态状态”或特征称为或特征称为属性属性。属性具有。属性具有属性名属性名和和属性值属性值,通过属性名,可以访问属性值,通过属性名,可以访问属性值,或为属性赋值。或为属性赋值。(2)事件(事件(Event):类或对象可:类或对象可能执行或发生的行为
6、称为能执行或发生的行为称为事件事件。4/14/20234/14/20237 7经济与管理学院经济与管理学院(3)(3)事件过程(事件过程(事件过程(事件过程(Event Procedure):Event Procedure):即对象响即对象响即对象响即对象响应某个事件所执行的应某个事件所执行的应某个事件所执行的应某个事件所执行的程序代码程序代码程序代码程序代码。程序代程序代程序代程序代码码码码是为处理特定的事件而编写的一段程是为处理特定的事件而编写的一段程是为处理特定的事件而编写的一段程是为处理特定的事件而编写的一段程序,也称为序,也称为序,也称为序,也称为事件代码事件代码事件代码事件代码。面
7、向对象的程序设计的核心思路,面向对象的程序设计的核心思路,面向对象的程序设计的核心思路,面向对象的程序设计的核心思路,就是为这些事件书写程序代码,在代码就是为这些事件书写程序代码,在代码就是为这些事件书写程序代码,在代码就是为这些事件书写程序代码,在代码中改变对象的一些属性值,并让对象做中改变对象的一些属性值,并让对象做中改变对象的一些属性值,并让对象做中改变对象的一些属性值,并让对象做出我们所期望的反应。出我们所期望的反应。出我们所期望的反应。出我们所期望的反应。(4 4)方法(方法(方法(方法(MethodMethod):又称方法程序,是:又称方法程序,是:又称方法程序,是:又称方法程序,
8、是描述对象行为的过程。即指对象所固有描述对象行为的过程。即指对象所固有描述对象行为的过程。即指对象所固有描述对象行为的过程。即指对象所固有的完成某种任务的功能,是对象能够执的完成某种任务的功能,是对象能够执的完成某种任务的功能,是对象能够执的完成某种任务的功能,是对象能够执行的一个操作。因此,行的一个操作。因此,行的一个操作。因此,行的一个操作。因此,“方法方法方法方法”类似于类似于类似于类似于面向过程程序设计中的面向过程程序设计中的面向过程程序设计中的面向过程程序设计中的“过程过程过程过程”和和和和“函函函函数数数数”。VFP的一些常用方法:的一些常用方法:RELEASE:从内存中释放表单或
9、表单集。从内存中释放表单或表单集。Show:显示表单显示表单Setfocus:为一个控件指定焦点为一个控件指定焦点Hide:隐藏表单、表单集和工具栏隐藏表单、表单集和工具栏Quit:推出推出VFP的一个实例。的一个实例。4/14/20234/14/20238 8经济与管理学院经济与管理学院从面向对象的理论看,从面向对象的理论看,从面向对象的理论看,从面向对象的理论看,“方法方法方法方法”与与与与“事件事件事件事件”本质上是相同的。本质上是相同的。本质上是相同的。本质上是相同的。“事件事件事件事件”可以看成系统预先定义的空可以看成系统预先定义的空可以看成系统预先定义的空可以看成系统预先定义的空“
10、方法方法方法方法”,可以在事件中调用用户定义的方法,可以在事件中调用用户定义的方法,可以在事件中调用用户定义的方法,可以在事件中调用用户定义的方法,也可以在用户自定义方法中激活特定,也可以在用户自定义方法中激活特定,也可以在用户自定义方法中激活特定,也可以在用户自定义方法中激活特定事件。但在事件。但在事件。但在事件。但在VFPVFP中,中,中,中,“方法方法方法方法”在很多情在很多情在很多情在很多情况下更基本,因为况下更基本,因为况下更基本,因为况下更基本,因为VFPVFP预先定义了一些预先定义了一些预先定义了一些预先定义了一些方法,可以在事件中调用它们,而它们方法,可以在事件中调用它们,而它
11、们方法,可以在事件中调用它们,而它们方法,可以在事件中调用它们,而它们一般不调用事件。一般不调用事件。一般不调用事件。一般不调用事件。4/14/20234/14/20239 9经济与管理学院经济与管理学院类(类(类(类(classclass)1.1.概念概念概念概念 类类类类是对一类相似对象的性质描述,是对一类相似对象的性质描述,是对一类相似对象的性质描述,是对一类相似对象的性质描述,这些对象具有相同种类的属性以及方这些对象具有相同种类的属性以及方这些对象具有相同种类的属性以及方这些对象具有相同种类的属性以及方法法法法 。为了便于开发系统,面向对象的开为了便于开发系统,面向对象的开为了便于开发
12、系统,面向对象的开为了便于开发系统,面向对象的开发工具一般都会提供很多预先定义好发工具一般都会提供很多预先定义好发工具一般都会提供很多预先定义好发工具一般都会提供很多预先定义好的类和对象,并为这些类和对象预先的类和对象,并为这些类和对象预先的类和对象,并为这些类和对象预先的类和对象,并为这些类和对象预先设置足够多的属性和事件,以及足够设置足够多的属性和事件,以及足够设置足够多的属性和事件,以及足够设置足够多的属性和事件,以及足够多的方法,供程序员自由调用。多的方法,供程序员自由调用。多的方法,供程序员自由调用。多的方法,供程序员自由调用。4/14/20234/14/20231010经济与管理学
13、院经济与管理学院类类属性属性1方法方法方法方法属性属性类的结构Eg:TEXTBOX类的一些常用属性:类的一些常用属性:Alignment:设置文本的对齐方式。设置文本的对齐方式。Fontsize:指定字体的大小。指定字体的大小。Value:文本框中的任何数据类型的值,或文本框中的任何数据类型的值,或者字段或变量的数据类型。者字段或变量的数据类型。4/14/20234/14/20231111经济与管理学院经济与管理学院2.2.子类与继承子类与继承子类与继承子类与继承 在在在在面面面面向向向向对对对对象象象象的的的的方方方方法法法法里里里里,继继继继承承承承就就就就是是是是一一一一个个个个类类类类
14、可可可可以以以以在在在在另另另另一一一一个个个个类类类类的的的的基基基基础础础础上上上上建建建建立立立立,继继继继承承承承该该该该类类类类的的的的所所所所有有有有属属属属性性性性和和和和事事事事件件件件。被被被被继继继继承承承承的的的的类类类类称称称称为为为为父父父父类类类类,继继继继承承承承父父父父类类类类建建建建立立立立的的的的类类类类称称称称为为为为子子子子类类类类。在在在在子子子子类类类类中中中中,不不不不仅仅仅仅可可可可以以以以继继继继承承承承父父父父类类类类的的的的所所所所有有有有特特特特性性性性,而而而而且且且且还还还还可可可可以以以以增增增增加加加加自自自自己己己己的的的的属属
15、属属性性性性和和和和方方方方法法法法程程程程序序序序。一一一一个个个个子子子子类类类类的的的的成成成成员员员员一般包括:一般包括:一般包括:一般包括:(1 1)从其父类继承的属性和方法;)从其父类继承的属性和方法;)从其父类继承的属性和方法;)从其父类继承的属性和方法;(2 2)由子类自己定义的属性和方法。)由子类自己定义的属性和方法。)由子类自己定义的属性和方法。)由子类自己定义的属性和方法。4/14/20234/14/20231212经济与管理学院经济与管理学院类可以实现多层次的继承关系类可以实现多层次的继承关系。例如:类继承了类,类又继承了类。例如:类继承了类,类又继承了类。例如:类继承
16、了类,类又继承了类。例如:类继承了类,类又继承了类。因此,类既是类的子类,也是类的父因此,类既是类的子类,也是类的父因此,类既是类的子类,也是类的父因此,类既是类的子类,也是类的父类。类。类。类。在一个层次结构中,如果有在一个层次结构中,如果有一个类,所有的其他的类都是由一个类,所有的其他的类都是由它直接或间接派生出来的,这个它直接或间接派生出来的,这个类就称为类就称为基类基类。4/14/20234/14/20231313经济与管理学院经济与管理学院2.类的特性类的特性(1)抽象:抽象:指用语言对需要用程序指用语言对需要用程序解决问题的现实世界进行建模,解决问题的现实世界进行建模,在计算机上模
17、拟现实世界。在计算机上模拟现实世界。(2)封装:封装:将对象的方法程序和属将对象的方法程序和属性包装在一起的方法,称为封装。性包装在一起的方法,称为封装。(3)继承:继承:子类沿用父类特征的能子类沿用父类特征的能力。力。(4)多态多态:是指两个相关的对象解:是指两个相关的对象解释同一个命令,但是同一个命令释同一个命令,但是同一个命令产生的动作却不同。产生的动作却不同。封装可以将操作对象的内部负责性与应用程序封装可以将操作对象的内部负责性与应用程序的其他部分隔离开来。的其他部分隔离开来。Eg:当用户对一个标签对当用户对一个标签对象设置象设置CAPTION属性时,不必了解标题字符串属性时,不必了解
18、标题字符串是如何存储的。是如何存储的。4/14/20234/14/20231414经济与管理学院经济与管理学院9.2VisualFoxPro中的类VisualFoxPro基类基类是系是系统本身内含的,并不存放在统本身内含的,并不存放在某个类库中。用户可以基于某个类库中。用户可以基于基类生成所需要的对象,也基类生成所需要的对象,也可以扩展基类创建自己的子可以扩展基类创建自己的子类。类。4/14/20234/14/20231515经济与管理学院经济与管理学院类名含义类名含义ActiveDoc活动文档Label标签CheckBox复选框Line线条Column(表格)列Listbox列表框Combo
19、Box组合框OlecontrolOLE容器控件CommandButton命令按钮OleboundcontrolOLE绑定控件CommandGroup命令按钮组OptionButton选项按钮Container容器类Optiongroup选项按钮组Contorl控件类Page页Custom定制PageFrame页框EditBox编辑框ProjectHook项目挂钩Form表单Separator分隔符FormSet表单集Shape图形Grid表格Spinner微调控件Header(列)标头TextBox文本框HyperLink超级链接Timer定时器Image图象ToolBar工具栏9-1Visu
20、alFoxpro基类基类列表列表4/14/20234/14/20231616经济与管理学院经济与管理学院类的分类:类的分类:按照用类创建的对象是否可视按照用类创建的对象是否可视来划分,来划分,VFP的类可分为:的类可分为:可视类可视类和和不可视类不可视类;按照类中能否放置其他类的对按照类中能否放置其他类的对象来划分,可以分为:象来划分,可以分为:容器容器类类和和控件类控件类(非容器类)(非容器类)4/14/20234/14/20231717经济与管理学院经济与管理学院容器类容器类:可以包含其他对象,并且:可以包含其他对象,并且允许访问这些对象。容器类所能允许访问这些对象。容器类所能包含的对象见
21、包含的对象见P218表表9-2;控件类:控件类:可创建包含其他被保护对可创建包含其他被保护对象的控件对象,是用以显示数据、象的控件对象,是用以显示数据、执行操作或使表单更易阅读的一执行操作或使表单更易阅读的一种图形对象。可以使用种图形对象。可以使用“表单设表单设计器计器”的的“表单控件表单控件”工具栏在工具栏在表单上绘制控件。表单上绘制控件。VFP中常用控中常用控件见件见P218表表9-3。4/14/20234/14/20231818经济与管理学院经济与管理学院VFP中的每一个类,都具有至少中的每一个类,都具有至少个事件,见个事件,见P219表表9-5;所有这些基类,都至少具有个所有这些基类,
22、都至少具有个属性,见属性,见P219表表9-4。4/14/20234/14/20231919经济与管理学院经济与管理学院9.3.1 创建对象创建对象 在在程程序序设设计计中中,可可以以使使用用CREATEOBJECT函函数数来来直直接接生生成成基基于于某某个个类类的的对对象象。该该函函数数的的格式如下:格式如下:CREATEOBJECT(,)函数基于指定的类生成一个函数基于指定的类生成一个对象,并返回对象的引用对象,并返回对象的引用。9.3VisualFoxPro中对象的操作4/14/20234/14/20232020经济与管理学院经济与管理学院类名可以是基类,也可以是自类名可以是基类,也可以
23、是自定义类。用定义类。用CreateObject()函数创建的对象是函数创建的对象是不可见的不可见的,可以使用下面的语句使其可可以使用下面的语句使其可见。见。Object.show或或Object.visible=.T.4/14/20234/14/20232121经济与管理学院经济与管理学院Eg:formwelcome=createobject(“form”)formwelcome=createobject(“form”)formwelcome.showformwelcome.show或或或或:formwelcome.visible=.t.formwelcome.visible=.t.4/14
24、/20234/14/20232222经济与管理学院经济与管理学院9.3.2 对象访问对象访问对对象象属属性性访访问问以以及及对对象象方方法法调调用的基本格式如下:用的基本格式如下:.(参参数数列表列表)绝对引用和相对绝对引用和相对引用(后述)引用(后述)4/14/20234/14/20232323经济与管理学院经济与管理学院【例【例9-1】基于】基于VisualFoxPro的的FORM类生成一个对象,然后访类生成一个对象,然后访问该对象的一些属性和方法问该对象的一些属性和方法。Oform=CREATEOBJECT(Form)&生成一个空白表单生成一个空白表单Oform.show&显示表单显示表
25、单Oform.caption=”演演示示”&修修改表单的标题改表单的标题?”这这是是一一个个生生成成对对象象的的演演示示程程序序”&在表单上输出字符串在表单上输出字符串Oform.release4/14/20234/14/20232424经济与管理学院经济与管理学院9.3.3容器与控件容器与控件VisualFoxPro中的类一般中的类一般可分为两种类型:容器类和控件可分为两种类型:容器类和控件类。相应地,可分别生成容器类。相应地,可分别生成容器(对象)和控件(对象)(对象)和控件(对象)。容器可以被认为是一种特殊容器可以被认为是一种特殊的控件,它能包容其他的控件或的控件,它能包容其他的控件或容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 表单 设计
限制150内