VisualFoxPro90程序设计基础第6章VisualFoxPro面向对象程序设计方法课件

上传人:29 文档编号:240641536 上传时间:2024-04-26 格式:PPT 页数:54 大小:3.71MB
返回 下载 相关 举报
VisualFoxPro90程序设计基础第6章VisualFoxPro面向对象程序设计方法课件_第1页
第1页 / 共54页
VisualFoxPro90程序设计基础第6章VisualFoxPro面向对象程序设计方法课件_第2页
第2页 / 共54页
VisualFoxPro90程序设计基础第6章VisualFoxPro面向对象程序设计方法课件_第3页
第3页 / 共54页
点击查看更多>>
资源描述
NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGY数数据据库技技术及及应用用l南京信息工程大学 计算机与软件学院主讲:刘主讲:刘 生生 NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGY第第6章章 Visual FoxPro程序程序设计的面向的面向对象方法象方法l南京信息工程大学 计算机与软件学院 主讲:刘生数据库技术及应用 教学目的教学目的和要求和要求l理解面向对象程序设计有关概念理解面向对象程序设计有关概念l了解了解VFP基类基类l掌握对象的引用与处理掌握对象的引用与处理l掌握掌握VFP中常用的事件和方法中常用的事件和方法l掌握创建子类的过程,了解类的管理与应用掌握创建子类的过程,了解类的管理与应用l了解工具栏的创建与应用了解工具栏的创建与应用 2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 3主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 教学重点教学重点 l类和对象的概念及特点类和对象的概念及特点l对象的引用与处理对象的引用与处理lVFP中的常用事件和方法中的常用事件和方法l类的创建、管理类的创建、管理2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 4主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 章节名称章节名称 l6.1 6.1 面向对象程序设计概述面向对象程序设计概述l6.2 VFP6.2 VFP系统的基类系统的基类l6.3 6.3 对象的引用与处理对象的引用与处理l6.4 VFP6.4 VFP中的方法中的方法l6.5 VFP6.5 VFP中的事件中的事件l6.6 6.6 类的创建与应用类的创建与应用l6.7 6.7 工具栏的创建与应用工具栏的创建与应用2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 5主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1 6.1 面向对象程序设计概述面向对象程序设计概述l面向对象的程序设计方法面向对象的程序设计方法l类与对象类与对象l类的特点类的特点l对象的属性、事件与方法对象的属性、事件与方法2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 6主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.1 6.1.1 面向对象的程序设计方法面向对象的程序设计方法l结构化程序设计结构化程序设计p设计方法自顶向下、功能分解p开发过程通常是从“做什么”到“如何做”p优点:结构性强、便于设计和理解l面向对象的程序设计面向对象的程序设计p基于问题对象的自底向上的功能综合p开发过程是从“用什么做”到“要做什么”p优点:l简化程序设计,提高程序代码的可重用性l更接近现实世界,可降低开发和维护的费用l可以和各种模型自然的融合2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 7主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.2 6.1.2 类与对象类与对象(1)(1)l对象对象(Object)对象对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位。对象由一组属性(静态特征)和一组行为(动态特征、操作)构成。属性是用来描述对象静态特征的数据项,行为是用来描述对象动态特征的操作序列。每个对象都具有属性,以及与之相关的事件和方法,通过对象的属性、事件和方法属性、事件和方法来处理对象。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 8主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.2 6.1.2 类与对象类与对象(2)(2)l类类(Class)类是具有相同属性和行为的一组对象的抽象集合。如汽车、电话等。类是面向对象程序设计中的核心。类是对象的抽象,对象是类的实例类是静态概念,对象是动态概念2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 9主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.2 6.1.2 类与对象类与对象(3)(3)基类(Base Class):VFP系统提供的内部定义的类。(表单、控件)(表61)子类(SubClass):引用VFP基类或其他的子类,建立的新类。用户自定义类(User-Define Class):与基类相似,由用户定义,可用于派生子类,但无可视化表示形式。VFP基类派生子类子类子类2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 10主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.3 6.1.3 类的特点类的特点l抽象性抽象性(Abstraction)(Abstraction)是指提取一个类或对象与众不同的特征,而不是对该类或对象的所有信息进行处理。l封装性封装性(Encapsulation)(Encapsulation)说明了包含和隐藏对象的内部信息(如内部的数据结构和代码)的能力。封装和隐藏是面向对象技术的核心。l继承性继承性(Inheritance)(Inheritance)就是子类延用其父类特征的能力。继承性体现并扩充了面向对象程序设计方法的共享机制。(对应的另一个概念:派生)l多态性多态性(Polymorphism)(Polymorphism)主要是指一些相关联的类包含同名的方法程序,但方法程序的具体内容可以不同。多态性使得相同的操作可以作用于多种类型的对象上并获得不同的结果。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 11主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.4 6.1.4 对象的属性、事件与方法对象的属性、事件与方法(1)(1)l属性(属性(PropertyProperty)定义对象的特征或某一方面的行为。在VFP系统中,所创建对象的属性由对象所基于的类决定,用户也可以根据需要为对象创建新的属性。l事件(事件(EventEvent)是由系统预先定义好的、能够被对象识别的一个动作。用户可以编写相应的代码对此动作进行响应。通常事件是由用户的动作产生的,也可以由程序代码或系统产生,如计时器(Timer)。在VFP系统中,不同的对象所能识别的事件有所不同,但整个事件集合是固定的,用户不能创建新的事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 12主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.1.4 6.1.4 对象的属性、事件与方法对象的属性、事件与方法(2)(2)l方法(方法(Method)是对象能够执行的一个操作。在VFP系统中,方法是与对象相关联的过程(完成某种操作的处理代码),通常也称为方法程序。方法可以由用户根据需要自己创建,因此其集合是可以无限制地扩展的。l事件可以具有与之相关联的方法程序。方法程序也可以独事件可以具有与之相关联的方法程序。方法程序也可以独立于事件而单独存在,它在系统中被显式地调用。立于事件而单独存在,它在系统中被显式地调用。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 13主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.2 VFP6.2 VFP系统的基类系统的基类(1)(1)l容器类(容器类(Container Class)(表)(表64)是可以包容其他类的基类。将容器类的对象加入表单后,无论在设计时还是在运行时,均可以将该容器类的对象作为一个整体来处理,也可以对其包容的对象分别进行处理。l控件类(控件类(Control Class)是可以包含在容器类中的基类,也称为非容器类,其封装比容器类严密。例如,标签、文本框、命令按钮等都属于控件类。lVFP中的对象根据所基于的类的性质,也可以分为容器对象和控件对象。容器对象可以作为其他对象的父对象,控件对象可以包含在容器对象中,但不能作为其他对象的父对象。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 14主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.2 VFP6.2 VFP系统的基类系统的基类(2)(2)l最小属性集最小属性集属属 性性说说 明明Class该类属于何种类型该类属于何种类型BaseClass该类由何种基类派生而来该类由何种基类派生而来ClassLibrary该类从属于哪种类库该类从属于哪种类库ParentClass对象所基于的类。若该类直接由对象所基于的类。若该类直接由VFP基类派生而来,则基类派生而来,则ParentClass属性值与属性值与BaseClass属性值相同属性值相同2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 15主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.2 VFP6.2 VFP系统的基类系统的基类(3)(3)l最小事件集最小事件集事事 件件说说 明明Init当对象创建时激活当对象创建时激活Destroy当对象从内存中释放时激活当对象从内存中释放时激活Error当类中的事件或方法程序发生错误当类中的事件或方法程序发生错误时激活时激活2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 16主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3 6.3 对象的引用与处理对象的引用与处理l在VFP系统中,用户可以基于类创建对象。一旦创建了对象,便可以通过对对象属性的修改、方法程序的调用来处理对象。l引用对象引用对象l设置对象属性设置对象属性l调用对象的方法程序调用对象的方法程序l响应事件响应事件2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 17主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3.1 6.3.1 引用对象引用对象(1)(1)l容器作为父对象,允许包含子对象。如果子对象也是容器类对象,则还可以包含其子对象,从而形成对象嵌套的层次关系。l若要引用一个对象,首先需要明确该对象所处的层次,这个层次可以看作对象的地址对象的地址。引用时容器中各个对象之间(以及对象与属性之间)用“.”(点)进行分隔。引用对象的格式如下所示:引用地址对象名称引用地址对象名称 l引用地址又可以分为绝对引用地址绝对引用地址和相对引用地址相对引用地址,所以对象的引用也就可以分为绝对引用绝对引用和相对引用相对引用。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 18主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3.1 6.3.1 引用对象引用对象(2)(2)l绝对引用绝对引用如果引用地址是从最外层容器开始直到目标对象,那就是绝对引用地址。用绝对引用地址引用对象称为绝对引用。如:FormSet1.Form1.Text1 l相对引用相对引用如果引用地址是从指定参照开始直到目标对象,那就是相对引用地址。用相对引用地址引用对象称为相对引用。如:ThisForm.Text12024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 19主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3.2 6.3.2 设置对象属性设置对象属性l通过对对象属性的设置,可以定义对象的特征或某一方面的行为。l对象的大多数属性值既可以在设计阶段设置,也可以在运行阶段进行设置,但也有一些属性是不能被设置的,即是只读的(斜体)。l在采用可视化的方法进行对象设计时,可以在“属性”窗口中对对象的属性进行设置;在程序代码中,可以使用如下的语法对对象的属性进行设置:引用对象引用对象.属性属性=值值l可以利用WITHENDWITH语句简化对同一对象的多个属性值的设置。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 20主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3.3 6.3.3 调用对象的方法程序调用对象的方法程序l对于已经创建的对象,用户可以根据需要在应用程序的任何地方调用这个对象的方法程序。调用方法程序的语法格式如下:引用对象引用对象.方法程序方法程序 FormSet1.Form1.Show&激活并显示表单对象“Form1”FormSet1.Form1.Text2.SetFocus l对于有返回值的方法程序必须以圆括号圆括号结尾(类似于函数调用),如果有参数传递给方法程序,该参数也必须放在括号中。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 21主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3.4 6.3.4 响应事件响应事件(1)(1)l当对象的某个事件发生时,该事件的处理程序代码将被执行。l如果事件没有与之相关联的处理程序,则当事件发生时不会发生任何操作。因此,在设计应用程序时,程序设计人员需要对程序中的对象指派相应的事件并编写相应的事件处理代码。l大多数事件都是由用户的操作触发的,如用户在某个对象上单击、双击或移动鼠标将会触发该对象的Click、DblClick或MouseMove事件。事件也能由系统事件触发,如计时器控件中的Timer事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 22主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.3.4 6.3.4 响应事件响应事件(2)(2)l为对象编写事件处理代码时,应注意:容器对象一般不处理与所包含的对象相关联的事件;如果没有与对象相关联的事件代码,VFP系统将在类等级的更高层次上检查是否有与此事件相关联的处理代码。l还需注意的是,当连续发生一系列事件时,若起始事件与某个对象相关联,那么整个事件队列可以都属于该对象,这取决于起始事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 23主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.4 VFP6.4 VFP中的方法中的方法(1)(1)l方法(程序)是对象能够执行的一个操作。在VFP中,系统提供了一些方法(表6-6),其程序是一些默认过程。用户可以调用这些方法程序,也可以为这些方法设计新的程序(即修改方法程序的默认过程),还可以创建新的方法。lHide方法方法功能:通过把对象的Visible属性设置为“假”(.F.),隐藏表单、表单集或工具栏。调用语法:对象名.Hide2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 24主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.4 VFP6.4 VFP中的方法中的方法(2)(2)lQuit方法方法功能:结束一个VFP实例,返回到创建该实例的应用程序。调用语法:对象名.QuitlRefresh方法方法功能:重画表单或控件,并刷新所有值。调用语法:对象名.Refresh可使用Refresh方法强制性地完全重画表单或控件,并更新控件的值。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 25主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.4 VFP6.4 VFP中的方法中的方法(3)(3)lRelease方法方法功能:从内存中释放表单或表单集。调用语法:对象名.ReleaselReset方法方法功能:重置计时器控件,让它从0开始。调用语法:计时器名.Reset2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 26主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.4 VFP6.4 VFP中的方法中的方法(4)(4)lSetAll方法方法功能:为容器对象中的所有控件或某类控件指定一个属性设置。调用语法:容器名.SetAll(cProperty,Value,cClass)其中,参数cProperty指定要设置的属性,Value指定属性的新值,cClass指定类名。l17SetFocus方法方法功能:为一个控件指定焦点。调用语法:控件名.SetFocus 如果一个控件的Enabled或Visible属性值为“假”(.F.),或者控件的When事件返回“假”(.F.),则不能给该控件指定焦点。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 27主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.4 VFP6.4 VFP中的方法中的方法(5)(5)lShow方法方法功能:显示一个表单,并确定是模式表单还是无模式表单。调用语法:表单名.Show(nStyle)Show方法把表单或表单集的Visible属性设置为“真”(.T.),并使表单成为活动的对象。如果表单的Visible属性已经设置为“真”(.T.),则Show方法使它成为活动对象。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 28主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5 VFP6.5 VFP中的事件中的事件l每个对象都有与之相关的事件。对于已创建的多个对象,用户根据需要可以为某个或某些事件配置相应的事件处理代码,使得应用程序在运行过程中根据所发生的事件做出相应的处理。l事件驱动和事件循环事件驱动和事件循环l核心事件核心事件l事件触发的顺序事件触发的顺序l常用事件常用事件2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 29主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.1 6.5.1 事件驱动和事件循环事件驱动和事件循环l事件驱动事件驱动采用面向对象的程序设计方法设计的应用程序,其功能的实现是由事件驱动的。所谓事件驱动,是指一旦产生特定事件,就要对该事件做出响应。而响应就是执行由用户根据数据处理需要为该事件编写的过程代码。l事件循环事件循环利用VFP进行应用程序设计时,必须创建事件循环(Event Loop)。在VFP系统中,事件循环是由READ EVENTS命令建立、CLEAR EVENTS命令终止的交互式的运行时刻环境。当发出READ EVENTS命令时,系统启动事件处理,发出CLEAR EVENTS命令时,停止事件处理。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 30主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.2 6.5.2 核心事件核心事件lVFP基类的事件集合是固定的,不能进行扩充不能进行扩充。每个类都可以识别固定的默认事件集合,它的最小事件集包括Init、Destroy和Error事件。lVFP系统核心事件集中的事件适用于大多数的对象(表6-7)。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 31主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.3 6.5.3 事件触发的顺序事件触发的顺序l在VFP中,有些事件以及事件激发的顺序是固定的(例如,表单在创建或删除时发生的事件序列),有些事件是独立发生的(例如,Timer事件等),但大多数事件是用户与VFP的交互操作时伴随着其他一系列事件发生的。l查看VFP事件的激发顺序(事件序列)可以利用调试器中的事件跟踪。当与表单和控件相关联的事件发生时,事件跟踪都将把发生的事件记录下来,以便当前或过后查看,帮助用户确定事件处理代码应加入到哪个事件中。l注:在事件跟踪时,通常将MouseMove事件和Paint事件从事件跟踪表中移出,因为这些事件发生频繁,较少对这些事件进行跟踪。l表6-8列出了VFP中一些事件的一般触发顺序,其中假定数据环境的AutoOpenTables属性设置为“真”(.T.)。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 32主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.4 6.5.4 常用事件常用事件(1)(1)l在VFP系统中,按触发机制可以将事件分为鼠标事件、键盘事件、表单事件、改变控件内容事件、对象焦点事件、数据环境事件等类型。l鼠标事件鼠标事件在VFP应用程序的界面中,利用鼠标对其中对象进行操作触发的事件。主要包括:Click事件、DblClick事件、RightClick事件、MouseMove事件、MouseDown和MouseUp事件、DragDrop事件、DownClick和UpClick事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 33主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.4 6.5.4 常用事件常用事件(2)(2)l键盘事件键盘事件在VFP中,与键盘操作相关的事件主要是KeyPress事件。当用户按下并释放某个键时发生此事件。KeyPress事件常用于截取输入到控件中的键击,使用户可以立即检验键击的有效性或对键入的字符进行格式编排。l表单事件表单事件表单事件是指操作表单对象时发生的事件。常用的表单事件主要有Load事件、Unload事件、Activate事件和Deactivate事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 34主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.4 6.5.4 常用事件常用事件(3)(3)l改变控件内容事件改变控件内容事件改变控件内容的事件有InteractiveChange事件和ProgrammaticChange事件。l对象焦点事件对象焦点事件当对象取得焦点(Focus)时,该对象成为当前活动对象。焦点事件用以指出当前被操作的对象。焦点事件有GotFocus事件、LostFocus事件、When事件和Valid事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 35主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.5.4 6.5.4 常用事件常用事件(4)(4)l数据环境事件数据环境事件数据环境包括与表单相关的表和视图,以及表单要求的表之间的关系。与数据环境有关的事件有BeforeOpenTables事件和AfterCloseTables事件。l其他事件其他事件Timer事件、Init事件、Destroy事件、Error事件。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 36主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6 6.6 类的创建与应用类的创建与应用l利用面向对象程序设计方法开发数据库应用程序时,通常把常用的对象封装成类。根据需要在类的基础上实例化成一个或多个具体对象,再利用这些对象设计数据库应用程序。l子类和类库子类和类库l类的设计和创建类的设计和创建l类和类库的管理类和类库的管理l类的应用类的应用2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 37主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.1 6.6.1 子类和类库子类和类库(1)(1)l为了缩短VFP应用程序的开发时间,提高开发效率,以及维护应用程序的一致性,应该尽可能地将一些通用的功能和一致的控件外观设计成类。l在VFP系统中,用户可以基于系统提供的基类创建自定义子类以扩展基类的功能,也可以基于已创建的自定义子类再创建子类(可形象地称之为“孙类”),这一过程可以继续下去,从而形成类等级结构。但子类的层次不宜过深,一般三层就足够使用了。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 38主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.1 6.6.1 子类和类库子类和类库(2)(2)lVFP系统将用户自定义子类保存在扩展名为.VCX的可视类库文件中。一个类库文件中可以保存多个自定义子类,自定义子类及其“孙类”可以存储在同一个类库文件中,也可以保存在不同的类库文件中。但VFP基类并不保存在.VCX类库文件中。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 39主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.2 6.6.2 类的设计和创建类的设计和创建l在VFP系统中,创建类的方法主要有两种:使用“类设计器”和以编程方式创建类。无论使用哪一种方式,都要完成创建类、类属性的定义、类的事件和方法的定义等操作。此外,还可以在设计表单时将表单和控件保存为类。l使用使用“类设计器类设计器”创建类创建类l以编程方式创建类以编程方式创建类l将表单和控件保存为类将表单和控件保存为类2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 40主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 1 1使用使用“类设计器类设计器”创建类创建类l“类设计器”是定义类的主要工具。首先通过“新建类”对话框创建子类和类库,接着在“类设计器”窗口中定义类的属性、事件和方法程序。(1)创建类)创建类(2)定义类的属性)定义类的属性(3)定义类的事件和方法程序)定义类的事件和方法程序(4)查看和设置类信息)查看和设置类信息2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 41主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 2 2以编程方式创建类以编程方式创建类lDEFINE CLASS命令用于创建一个用户自定义的类或子类,且指定类或子类的属性、事件和方法。l语法格式语法格式:DEFINE CLASS 类名1 AS 父类名 PROTECTED 属性名1,属性名2 属性名=表达式 ADD OBJECT PROTECTED 对象名 AS 类名2 NOINIT WITH 属性名表 PROTECTED FUNCTION|PROCEDURE 过程名 _ACCESS|_ASSIGN|THIS_ACCESS NODEFAULT 过程或函数语句 ENDFUNC|ENDPROC ENDDEFINE 2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 42主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 3 3将表单和控件保存为类将表单和控件保存为类l在设计表单时,如果表单或表单上的某些控件具有通用性,也可以将表单或表单上的选定控件保存为类。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 43主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.3 6.6.3 类和类库的管理类和类库的管理(1)(1)l在VFP系统中,用户可以使用“项目管理器”或“类浏览器”来管理所创建的类和类库,如类库中类的修改、删除、复制或移动等。l在在“项目管理器项目管理器”窗口中管理类和类库窗口中管理类和类库(1)在项目中添加或移去类库 注意:注意:“移去”操作仅从当前项目中移去类库,而“删除”操作不仅将类库从当前项目中移去,而且将相应的类库文件从磁盘上删除。(2)复制或删除类库中的类 注意:注意:应该尽可能地将所有子类都包含在同一个类库中。(3)重命名类库中的类 注意:注意:重命名一个类最好在创建其子类或应用该类之前进行,一旦该类被使用就不必再去重命名。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 44主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.3 6.6.3 类和类库的管理类和类库的管理(2)(2)l在在“类浏览器类浏览器”窗口中管理类和类库窗口中管理类和类库VFP系统中的“类浏览器”是专门用来显示类库或表单中的类的工具,它除了能浏览类库中的类外,还能显示.TLB、.OLB或.EXE文件中的类型库信息。用户可以使用“类浏览器”显示类库或表单中的表,以及查看、使用和管理类及其用户自定义成员,使得管理类和类库更加方便。选择“工具”菜单中的“类浏览器”命令,或在“命令”窗口中输入“DO(_BROWSER)”命令,都可以打开“类浏览器”窗口。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 45主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.4 6.6.4 类的应用类的应用(1)(1)l用户创建了合适的类以后,就可以在这些类的基础上实例化成具体对象,通过对对象的引用来进行应用程序的开发。l添加类到表单添加类到表单(1)从“项目管理器”窗口拖放到“表单设计器”如果所需的类库和类已经存在于一个项目中,则可将类从“项目管理器”的类库中用鼠标拖至“表单设计器”中的表单上或表单上的容器控件中,这便可以直接在表单或表单的容器控件中创建类所对应的可视控件,并可以像使用基类控件一样设置属性或编辑事件代码。(2)注册可视类库 如果类库中的类在表单设计时需要频繁使用,可以将类注册,以便在“表单设计器”的“表单控件”工具栏上显示和使用它们。(3)在“表单控件”工具栏中显示类控件2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 46主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.4 6.6.4 类的应用类的应用(2)(2)l覆盖默认属性设置覆盖默认属性设置基于用户自定义类创建的对象被添加到表单后,可以修改该对象中所有未被保护的属性值。表单运行时,表单中对象接受用户修改后的属性设置,即以用户定义的新属性值来覆盖类的默认属性值。这样,即使在“类设计器”中该属性的值被重新修改,表单中对象的属性值也不会改变。如果用户在设计表单时,对象的属性设置没有被修改,则在“类设计器”中修改某属性值时,由类创建的对象的相关属性值将会改变。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 47主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.6.4 6.6.4 类的应用类的应用(3)(3)l调用父类的处理代码调用父类的处理代码子类和对象自动继承基类的功能。但是,VFP允许用户用新的功能来替代从基类继承来的功能,在运行时,基类的代码不执行,而执行新的程序代码。在较多的情况下,用户希望在为新类或对象添加新功能的同时,仍然保留父类的功能,这时,用户可以在类或容器层次的各级程序代码中使用函数DODEFAULT()或作用域操作符“:”调用父类的程序代码。区别:DODEFAULT()函数只能调用当前对象父类中与当前事件或方法同名的事件或方法代码,而“:”操作符可以调用在当前作用域中任何一个对象(包括当前对象)父类中任何一个事件或方法代码。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 48主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.7 6.7 工具栏的创建与应用工具栏的创建与应用l在许多应用软件中都有自己的工具栏。设置工具栏的主要目的是为方便用户操作。l若要定制已有工具栏或创建一个包含已有工具栏按钮的工具栏,可直接基于现有工具栏进行定制或创建。如果要创建一个工具栏,要它包含己有工具栏所没有的按钮,则可通过定义一个自定义工具栏类来完成。l定制系统已有的工具栏定制系统已有的工具栏l创建包含系统已有工具按钮的工具栏创建包含系统已有工具按钮的工具栏l创建自定义工具栏创建自定义工具栏 2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 49主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.7.1 6.7.1 定制系统已有的工具栏2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 50主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.7.2 6.7.2 创建包含系统已有工具按钮的工具栏2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 51主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 6.7.3 6.7.3 创建自定义工具栏 l创建自定义工具栏的一般步骤如下:基于VFP提供的工具栏基类,创建一个新的工具栏类(子类)。向工具栏中添加对象,并设置有关的属性、方法和事件代码。将自定义工具栏添加到一个表单集中。如有必要,可以在表单集中继续对工具栏进行修改。2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 52主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 作业作业1简述类的概念和性质。2简述类和对象的联系与区别。3简述对象的属性、事件与方法。4常用的鼠标事件有哪些?5在VFP中创建子类有哪几种方法?2024/4/26 第六章第六章 VFP面向对象程序设计方法面向对象程序设计方法 53主讲:主讲:南京信息工程大学计算机与软件学院南京信息工程大学计算机与软件学院 刘生刘生 NANJING UNIVERSITY OF INFORMATION SICENCE&TECHNOLOGYThe end
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!