欢迎来到天天文库
浏览记录
ID:33927618
大小:381.87 KB
页数:138页
时间:2019-03-01
《visual foxpro程序设计 第10章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章面向对象程序设计基础10.1面向过程和面向对象的程序设计10.2面向对象基本概念10.3VFP中的类10.4VFP的属性、事件和方法10.5对象的操作10.6创建类和对象10.7面向对象程序设计举例返回主目录第十章面向对象程序设计基础10.1面向过程和面向对象的程序设计10.1.1面向过程的程序设计在传统的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码,一般从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。例1假设有一个旅馆服务表文件GFU.DBF,利用传统的程序设计方法,编制一个主控程序,使它能
2、提供以下功能:退出、查询、登记、消账、结算。传统的程序设计如下:SETTAKOFFCEARAUSEGFGDOWHIE.T.GOTOPCEAR?SPACE(10)+"*****旅馆服务主菜单***************"?SPACE(10)+"*0—退出旅馆前台服务*"?SPACE(10)+"*1—查询*"?SPACE(10)+"*2—登记*"?SPACE(10)+"*3—消账*"?SPACE(10)+“*4—结算*"?SPACE(10)+"******************************”WAIT"请选择0~4号菜单:"TO
3、A1DOCASECASEA1="0"EXITCASEA1="1"DOCXCASEA1="2"DODJCASEA1="3"DOXZCASEA1="4"DOJSENDCASE这是传统的程序设计方法,退出、查询、登记、消账、结算等5个功能分别由EXIT命令和CX、DJ、XZ、JS等4个子程序实现,然后再被主控程序调用。程序执行中所需要的所有数据、主菜单出现的位置、装饰符号“*”等必须全部在程序中加以说明和控制。用户在编制这种程序时,必须考虑代码的全部流程,并通过算法控制程序的执行,并且用户在编写程序时,看不到程序运行的结果。如果用户编译→运行后
4、不满意,需要有所修改,必须找到相应的程序(或子程序)修改相应的代码,再编译→运行→修改→编译→运行,这种编程方法称为面向过程的程序设计方法,有时也称之为结构化程序设计方法。在面向过程的程序设计中,整个系统以功能分类,它被划分成各类功能模块,各个功能模块如果需要,还必须划分为更为具体的小功能模块,直至该功能模块能以一个函数或一个过程来实现为止。它具有思路清晰、功能单一等特点,但不便维护,不易修改。现在,VFP等Windows应用软件,既提供了传统的面向过程的程序设计方法,也提供了以下的程序设计方法。10.1.2面向对象的程序设计用户可使用以
5、下方法,实现上例中的功能:先设计一个表单,放置一个文本框和一个命令按钮组,文本框用来提示信息“旅馆服务主菜单”,命令按钮组中各个按钮分别执行退出、查询、登记、消账、结算等5种功能(如图10–1所示)。实现这5种功能的子程序分别写在各个命令按钮的“单击”事件中,即当程序运行时,用户通过“单击”某个按钮,实现其中的代码功运行后哪个按钮的功能不满意,只需修改该按钮的程序。账图10–1“旅馆服务主菜单”表单各个命令按钮有高度、宽度、背景色、按钮标题、按钮相对表单的位置、按钮标题颜色等属性,这些属性值就是描述命令按钮的一系列的数据,它们可以在按钮设
6、计时进行设置,并可马上看到设置的效果,不需要经过编译→运行→修改→再编译→再运行……这个过程,所以是可视化的。属性值(数据)也可以在程序运行时进行设置,即和按钮的操作程序写在一起。所以对程序员来说一个命令按钮的属性值(数据)和操作程序是一个整体,程序员把它们看成是一个实体,可以一起被删除、复制等,在VFP中称为一个对象,即对象是程序和数据的封装体,这种编程方法称为面向对象的程序设计方法。在面向对象的程序设计中,程序代码不是按照预定的路径执行的,而是在响应不同的事件时执行不同的代码片段,即受“事件驱动”。事件可以由用户操作触发,也可以由来自
7、操作系统或其它应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的。面向对象程序设计的两个基本特点是:(1)它是可视化的编程方式。(2)程序运行没有一定的顺序,由事件驱动。对象是程序和数据的结合体,是VFP的一个操作单位。对象和对象又可组成新的对象。所以,在进行面向对象的程序设计中,设计人员应该把精力放在“对象”的设计上,如何构造对象是程序设计的重点。而且对象以数据为中心,所有的操作是围绕对数据所作的处理而进行的。每个对象都是相对封闭、独立的,便于修改和维护。程
8、序执行没有固定的执行路线,它的执行不局限于某个固定的流程,而取决用户当前的操作(事件),如果需要,每个事件的发生,均有相应的设计处理程序去处理。所以在面向对象的程序设计方法中,用户需要考虑的是
此文档下载收益归作者所有