资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,二、面向对象程序设计,面向对象程序设计不同于结构化程序设计。在进行面向对象程序设计时,首先要考虑为实现某种目标而创立的具有某种功能且操作使用便捷的控件、对象和控件的使用参数及外观,以及为实现某种功能应选用的事件、方法程序,并设置好数据环境。,一、根本概念,面向对象技术为软件开发提供了一种新的方法学,引入了许多新的概念,这些概念是理解和使用面向对象技术的根底和关键。,1对象,对象(Object)是具有某些特性的具体事物的抽象。对象在现实生活中到处可见。但凡我们要处理的事物都可成为处理的对象,包括可见的事物如人、汽车、等和非可见的事物如感情、思想等。,例如,一个人是一个对象,一台PC机是一个对象;再将一台PC机拆开看,便有显示器、机箱、硬盘、主板、处理器、鼠标等,这每一个部件又是一个对象,即PC机对象是由多个“子对象组成的,此时PC机可看作为一个容器对象。,而windows的对象就是窗口、对话框、表格、复选框等,即数据和数据上的操作。,一个对象的三个特征:属性、事件 和方法,状态、行为 和标识,2对象的属性、事件和方法,1属性Property,-属性是一组用于描述对象的物理特征的值。例如:,一个汽车对象由颜色、尺寸、品牌、厂家等根本属性,描述。,VFP中一个复选框具有名字Caption、可选状态,Enable、可见性Visable等属性,这使得用,户可以通过控制对象的这些属性值来操作这些对象。,属性值既可以预先定义,也可以在程序运行过程中由,程序定义的修改,如同变量。,2事件Event,-事件是由对象识别的一个动作,用户可以编写相应代码对此动作进行响应。,事件可以由一个用户施于对象上动作产生:,如 单击鼠标或按键盘键位(最常见),事件也可以由程序代码或者系统施于对象上产生:,如 计时器在一定的时间激发某个事件就是由系统产生。,大多数情况下,事件是通过用户的交互操作产生的,在VFP中,可以激发事件的用户动作包括:,单击鼠标Click、双击鼠标DblClick,按键Key Press、移动鼠标MouseMove,等,3方法Method,-方法是与对象相关联的过程,对象的事件可以具有与之相关联的方法。,例如,为Click事件编写的方法代码将在Click事件出现时执行。方法也可以独立于事件而单独存在,此类方法必须在代码中被显式地调用如所编程序。,在VFP中,系统将对象的所有属性、事件和方法均放在同一个属性窗口中,用户可以通过同一代码窗口设置属性,书写事件代码和方法代码。,3类Class(对象和类的概念很相近,但又有所不同),类是具有共同属性、共同操作性质的对象的集合在客观世界中,有许多具有相同属性和行为特征的事物.,例如:桥梁是抽象的概念,重庆长江大桥、西湖断桥就是具体的。我们把抽象的“桥看成类,而具体的一座桥,如重庆长江大桥看成是对象。,类是对象的抽象描述,对象那么是类的实例。类是抽象的,对象是具体的。,类可以划分为基类(根类)和子类(派生类)。子类以其基类为起点,并可继承基类的特征。,如水果是基类,苹果是子类,而红富士、黄元帅等苹果品种又是苹果类的子类,在这里,水果也称为是苹果的父类,苹果也可称为是红富士、黄元帅等的父类。具体的一个红富士苹果就是一个对象。,4类的特性,1继承性,子类不但具有父类的全部属性和方法,而且允许用户根据需要对已有的属性和方法进行修改,或添加新的属性和方法,这种特性称为类的继承性。有了类的继承,用户在编写程序时,可以把具有普遍意义的类通过继承引用到程序中,并只需添加或修改较少的属性、方法,从而减少代码的编写工作,提高了软件的可重用性,2封装性,类的封装性是指类的内部信息对用户是隐蔽的。如同一台电视机的使用者只需了解其外部按钮用户接口的功能与用法,而无需知道电视机的内部构造与工作原理一样。在类的引用过程中,用户只能看到封装界面上的信息属性、事件、方法,而其内部信息数据结构、操作实现、对象间的相互作用等那么是隐蔽的,对对象数据的操作只能通过该对象自身的方法进行。,3多态性,类的多态性是指一些相关联的类包括同名的方法程序,但方法程序的内容不同。在运行时,根据不同的对象、类及触发的事件、控件、焦点确定调用哪种方法程序。多态性是灵巧的面向对象形态的切换。,(二)、面向对象程序设计根本方法,在面向对象的程序设计中,对象是组成软件的根本元件。每一个对象可看成是一个封装起来的独立元件,在程序中担负某个特定的任务。因此,在设计程序时,不必知道对象的内部细节,只要在需要时,对对象的属性进行设定和控制即可。,在进行面向对象程序设计时,首先要考虑的是如何创立对象,其次考虑对象的功能和可以进行的操作。其中应该包含以下几个要点:,希望用户能够到达反响用户意图的目标。,为实现这一目标,对象应具备的环境、状态、条件,数据环境。,以这一目标为中心,对象应该具有的可以实施的功,能及配套参数。,为用户使用方便 提供最正确接口、交互式操作界面。,面向对象程序设计根本性地改变了VFP应用程序面向过程的开发方式,把重点放在对象之间的联系上,而不是具体实现的细节。面向对象程序设计将对象的细节隐藏起来,使开发者将注意力集中在对象与系统的其他局部的联系上,这与面向过程的程序设计方式有根本的区别。面向对象程序设计是现代程序设计思维和方法上的巨大飞跃。,图,26,对象和应用程序的关系,是1种将数据和操作过程结合在一起的数据结构,是现实世界中待处理的容观实体的抽象表达,事件,是对象可以识别和响应的行为和动作,。事件是预先定义的动作,由用户或系统激活。当事件发生时,与之相对应的,方法程序,代码将被执行。,三、Visual FoxPro中的类,在Visual FoxPro系统中,类就像一个模板,对象都是由它生成的。类定义了对象所具有的属性、事件和方法,从而决定了对象的外表和它的行为,对象可以看成是类的实例。,Visual FoxPro为用户提供了29个基类,用户既可以从中创立对象,也可以由基类派生出子类;因此,为了更好地使用类,必须了解基类的类型、属性、事件、方法等内容。,Visual FoxPro的基类,基 类,类 型,可包含对象,名 称,Check Box,控件,不包含,复选框,Column,容器,标题对象等一部分对象,网络控件上的列,Combo Box,控件,不包含,组合框,Command Button,控件,不包含,命令按钮,Command Group,容器,命令按钮,命令按钮组,Container,容器,任何控件,容器类,Control,容器,任何控件,控件类,Custom,容器,任何控件、页框、自定义对象,自定义类,Edit Box,控件,不包含,编辑框,Form,容器,页框、任何控件、容器和自定义对象,表单,Form Set,容器,表单、工具栏,表单集,Grid,容器,栅格、列,网格,Header,控件,不包含,标题行,Image,控件,不包含,图像,Label,控件,不包含,标签,Line,控件,不包含,线条,List Box,控件,不包含,列表框,OLE bound Control,控件,不包含,OLE绑定控件,OLE Container Control,控件,不包含,OLE容器控件,Option Button Group,容器,选项按钮,选项组,Option Button,控件,不包含,选项按钮,Page,容器,任何控件和容器,页,Page Frame,容器,页面,页框,Separator,控件,不包含,空白空间,Shape,控件,不包含,形状,Spinner,控件,不包含,微调控制器,Text Box,控件,不包含,文本框,Timer,控件,不包含,定时器,Tool Bar,容器,任何控件、容器和自定义对象,工具栏,在VFP中,29个基类对象又分为:,控件类对象,-,在该类对象中不能再包含其他对象:,如:,标签、形状、线条、图像、文本框、列表框,等,容器类对象,-,可以包含其他对象:,如:,表单集、表单、表格、选项按键钮组、页框,与页面 等,四、属性,属性是对象的特征,是对象某一方面的行为参数。它描述了一个对象,描述了对象的状态、特征或某一方面的行为功能。对象的每个属性都具有一定的含义,可对其进行设置、赋值、以及定义对象的特征和行为。,在VFP中,对象的属性可以通过属性窗口设置,也可以通过代码在运行时设置。,Visual FoxPro中对象的属性根据其特点可划分为:,1与操作方式、功能、效果有关的属性,ReadOnly 指定用户是否可以编辑控件,2与对象的引用有关的属性 Value 指定对象当前的取值,3与运行、操作条件有关的属性,Format 指定对象的输入和输出格式,4与对象可视性有关的属性 Visible 指定对象是可见还是隐藏,5与数据、信息有关的属性FontSize指定对象文本的字体大小,常用表单及控件属性,属 性,说 明,属 性,说 明,Caption,指定对象的标题,Alignment,指定对象文本的对齐方式,Name,指定对象的名字,AutoSize,是否自动调整大小以适应内容,Value,指定对象当前的取值,Height,指定屏幕上一个对象的高度,Format,指定对象的输入和输出格式,Width,指定屏幕上一个对象的宽度,InputMask,指定在控件中如何输入和显示数据,Left,对象左边相对于父对象的位置,PasswordChar,指定在文本框中是否使用占位符,Top,对象上边相对于父对象的位置,ReadOnly,指定用户是否可以编辑控件,Movable,运行时表单能否移动,FontName,指定对象文本的字体名,Closable,标题栏中关闭按钮是否有效,FontSize,指定对象文本的字体大小,ControlBox,是否取消标题栏所有的按钮,ForeColor,指定对象中的前景色,MaxButton,指定表单是否有最大化按钮,BackColor,指定对象内部的背景色,MinButton,指定表单是否有最小化按钮,BackStyle,指定对象背景是否透明,WindowState,指定运行时是最大化或最小化,BorderStyle,指定边框样式,Visible,指定对象是可见还是隐藏,AlwaysOnTop,是否处于其他窗口之上,Enabled,指定对象是否可用,AutoCenter,是否在VFP主窗口内自动居中,五、事件,事件是对象可以识别和响应的行为和动作。事件是预先定义的动作,由用户或系统激活。当事件发生时,与之相对应的方法程序代码将被执行。,在Visual FoxPro中,对象可以响应 50多种事件,主要事件种类有:,1与鼠标操作有关的事件。如单击、右击事件,2与键盘操作有关的事件。如按下键,3与对象内容改变有关的事件。,用户使用键盘和鼠标改变控件值时Interactivechang,4与表单有关的事件。如创立对象之前,5其他事件。,常用表单事件,事 件,事件的激发,事 件,事件的激发,Load,在创建对象之前,GotFocus,对象接收到焦点,Init,当对象创建时,(,在,Load,之后,),LostFocus,对象失去焦点,Destroy,释放一个对象时,KeyPress,当用户按下或释放一个键,Unload,释放所有对象后,(,在,Destroy,之后,),MouseDown,当用户按下鼠标键,Click,用户鼠标单击对象,MouseMove,当用户移动鼠标到对象,DblClick,用户鼠标双击对象,MouseUp,当用户释放鼠标,RightClick,用户鼠标右击对象,Error,当发生错误时,Interactivechang,用户使用键盘和鼠标改变控件值时,六、方法程序,方法是对象所能执行的操作,是与对象相关的过程,方法程序是对象能够执行的、完成相应任务的操作命令代码的集合。方法与事件有着密切的联系,一个事件必定有一个与之相对应的方法。,用户动作激活产生事件,对事件的响应那么通过对应的方法实现。,如为
展开阅读全文