《面向对象程序设计基础.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计基础.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 面向对象程序设计基础返回返回第二章 面向对象程序设计基础下一下一页结束束1第二章 面向对象程序设计基础返回返回第二章 面向对象程序设计基础本章重点本章重点:数据数据类型型 VFP的常量、的常量、变量、表达式、常用函数的使用量、表达式、常用函数的使用 对象的基本特征象的基本特征本章本章难点点:表达式的使用表达式的使用 面向面向对象的概念象的概念2第二章 面向对象程序设计基础返回返回第第2章章 面向对象程序设计基础面向对象程序设计基础 2.1 数据数据类型型 2.2 Visual FoxPro 的数据容器的数据容器 2.3 Visual FoxPro 的数据的数据处理理 2.4 面向面向对
2、象技象技术概述概述 2.5 面向面向对象基本概述象基本概述3第二章 面向对象程序设计基础返回返回 2.1 2.1 数据类型数据类型 数据在数据在Visual FoxPro中是信息的表中是信息的表现形式,即反映形式,即反映客客观事物属性的事物属性的记录。Visual FoxPro中所有的数据都有中所有的数据都有自身的自身的类型,称型,称为数据数据类型。型。1字符型字符型C 2数数值型型N(数(数值、浮点、双精度、整型)、浮点、双精度、整型)3日期型日期型D 4日期日期时间型型T 5逻辑型型L 6备注型注型M 7通用型通用型G4第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPr
3、o 2.2 Visual FoxPro 的数据容器的数据容器 在中主要的数据容器有:常量、在中主要的数据容器有:常量、变量、数量、数组、字段、字段、记录、对象。象。2.2.1 常量常量 1数值型常量 由数字(09)、小数点和正负号组成。例如:、768、2浮点型常量 浮点型常量是数值型常量的浮点格式。例如:-123e+12(表示:-1231012)5第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器3字符型常量字符型常量 由由汉字和字和ASC字符集中可打印字符字符集中可打印字符组成的字符成的字符串,使用串,使用时必必
4、须用定界符括起来。用定界符括起来。双引号双引号“”定界符定界符 单引号引号 中括号中括号例如:例如:“ABCDE”、中国人民解放中国人民解放军、张小泉4逻辑型常量型常量 由表示由表示逻辑判断判断结果果为“真真”或或“假假”的符号的符号组成,用成,用圆点点“.”作作为定界符。例如:定界符。例如:.t.或或.T.、.f.或或.F.6第二章 面向对象程序设计基础返回返回5日期常量日期常量 用于表示日期,其用于表示日期,其规定格式用定格式用 yyyy/mm/dd 或或yyyy-mm-dd 表示。表示。例如:例如:2003/10/136时间日期常量日期常量 用于表示用于表示时间日期,其日期,其规定格式用
5、定格式用 yyyy/mm/dd hh:mm:ss 或或yyyy-mm-dd hh:mm:ss表示。表示。例如:例如:2003/10/13 10:00:00。2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器7第二章 面向对象程序设计基础返回返回4.2.2 变量Visual FoxPro的的变量可分量可分为系系统变量、字段量、字段变量和内存量和内存变量三量三类。1系系统变量量 系系统变量是指以字符量是指以字符“_”开开头的、由的、由FoxPro 系系统自自动定定义生成的生成的变量。它的名称是系量。它的名称是系统已定已定义好的,如:好的,如:_HTML。2
6、字段字段变量量 字段字段变量以字段名量以字段名标识,依附于表,随着表的打开和关,依附于表,随着表的打开和关闭而在而在内存中存内存中存储和和释放。放。3内存内存变量量 内存内存变量存在于程序中,其量存在于程序中,其值存存储在内存里,一旦程序运行完在内存里,一旦程序运行完毕,这些些变量就自量就自动释放。放。2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器8第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器1)创建内存建内存变量量 Visual FoxPro 的内存的内存变量可
7、以不事先声明定量可以不事先声明定义,只要直接,只要直接对它它进行行赋值即可即可创建一个内存建一个内存变量。量。赋值有两种方法:有两种方法:STORE TO。说明:可以把一个明:可以把一个值赋给一个或多个内存一个或多个内存变量,并定量,并定义内存内存变量及其数据量及其数据类型;多个内存型;多个内存变量之量之间以以“,”隔开。隔开。=。说明:可以把一个明:可以把一个值赋给一个内存一个内存变量,并定量,并定义内存内存变量及其量及其数据数据类型。型。9第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器【注:】在命令以及表达
8、式的格式中符号【注:】在命令以及表达式的格式中符号约定如下:定如下:必必备项。可可选用用项。|两者取一。两者取一。命令字不区分大小写,命令命令字不区分大小写,命令语句各元素之句各元素之间以空格隔开。以空格隔开。【例【例2-1】某程序清】某程序清单中有如下中有如下语句句 STORE 4 TO A,B&创建两个内存建两个内存变量量A和和B,值均均为4,数据,数据类型型为整型。整型。CH=“absd”&创建一个内存建一个内存变CH,其其值为“absd”,字符型。,字符型。10第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据
9、容器2)内存)内存变量的作用域量的作用域全局(全局(PUBLIC)变量量格式:格式:PUBLIC 功能:将功能:将中指定的内存中指定的内存变量定量定义为全局全局变量。量。局部(局部(PRIVATE)变量量格式:格式:PRIVATE 功能:功能:指定某些指定某些变量量为只限于本模只限于本模块及下属模及下属模块中使用的局部中使用的局部变量,并使量,并使其上其上级模模块中的同名中的同名变量量隐蔽起来直至本蔽起来直至本级模模块运行运行结束束为止。止。本地(本地(LOCAL)变量量格式:格式:LOCAL 功能:功能:将将中指定的内存中指定的内存变量定量定义为本地本地变量。本地量。本地变量只在量只在定定义
10、它的程序中有效,在它的程序中有效,在调用用该过程的程的过程中或者被程中或者被该过程程调用的用的过程中均无效。一旦定程中均无效。一旦定义它的程序运行完它的程序运行完毕,本地,本地变量将从内存中量将从内存中释放。放。11第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器2.2.3 数数组 数数组是一种特殊的内存是一种特殊的内存变量,它是一量,它是一组按一定按一定顺序排列的数据序排列的数据值,每一个数据每一个数据值称称为一个元素。数一个元素。数组元素用数元素用数组名与名与该元素在数元素在数组中排中排列位置的下列位置的下标
11、一起表示,下一起表示,下标的个数称的个数称为维数。数。数数组必必须先定先定义再引用。再引用。格式:格式:DEMENSIONDECLARE (,),(,)指定数指定数组的作用范的作用范围,可以用内存,可以用内存变量作用域命令来量作用域命令来说明。明。LOCAL ARRAY PRIVATE ARRAY PUBLIC ARRAY 12第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器2.2.4 字段字段 字段(字段(field)是包含在)是包含在记录中的数据中的数据项。一个或多个字段。一个或多个字段组成表中的一条成表中的
12、一条记录,一条,一条记录或者多条或者多条记录组成表。字段在成表。字段在记录中具有特定的名称和数据中具有特定的名称和数据类型,在数据表建立型,在数据表建立时定定义。2.2.5 记录 记录是数据表中一个存是数据表中一个存储单位,是一位,是一组数据数据项的集合。在的集合。在同一个数据表中可以有若干个同一个数据表中可以有若干个记录,每一个,每一个记录具有相同的字具有相同的字段个数。在数据表中段个数。在数据表中记录的的顺序不影响序不影响对记录的操作。的操作。13第二章 面向对象程序设计基础返回返回 2.2 Visual FoxPro 2.2 Visual FoxPro 的数据容器的数据容器2.2.6 对
13、象象 每一个具体的每一个具体的对象是象是类的一个的一个实例,例,类是是对具有相同具有相同特征(属性和方法)的特征(属性和方法)的对象集的特征描述。引用象集的特征描述。引用对象是可象是可视化化编程的重要手段。中的系程的重要手段。中的系统对象包括表象包括表单、控件和数、控件和数据据环境等。利用境等。利用对象的属性和方法可以方便地象的属性和方法可以方便地实现应用程用程序的构造。用序的构造。用户通通过自定自定义对象,可以有效地提高程序的象,可以有效地提高程序的可靠性,增加代可靠性,增加代码的重用率。的重用率。14第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visu
14、al FoxPro 的数据处理的数据处理2.3.1 Visual FoxPro的函数的函数 函数(函数(function)是指一个)是指一个预先先编制好的制好的计算模算模块,可供,可供程序在任何地方程序在任何地方调用。用。格式:函数名(格式:函数名()说明:函数名后接括号,括号内无自明:函数名后接括号,括号内无自变量的函数称量的函数称为无参函数。无参函数。每个函数都有一个返回每个函数都有一个返回值。15第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理调用函数的方法如下:用函数的方法如下:1)将函数的返回)将函数的
15、返回值赋给某个某个变量。量。例如:例如:dToday=Date()&使用使用变量量dToday保存当前系保存当前系统 日期日期2)Visual FoxPro命令中包含函数命令中包含函数调用。用。例如:例如:CD Getdir()&使用使用Getdir()函数的返回函数的返回值设 置默置默认路径路径3)在主窗口中)在主窗口中输出函数返回出函数返回值。例如:例如:?TIME()()&在主窗口中在主窗口中输出当前系出当前系统时间4)函数嵌套。)函数嵌套。例如:例如:?YEAR(Date()()&在主窗口中在主窗口中输出今天的年出今天的年份份16第二章 面向对象程序设计基础返回返回 2.3 Visua
16、l FoxPro 2.3 Visual FoxPro 的数据处理的数据处理1数数值运算运算类函数函数1)绝对值函数函数 ABS()功能:返回功能:返回expN的的绝对值。2)取整函数)取整函数 INT()功能:功能:计算出算出expN的的值,将其取整返回。,将其取整返回。3)最大)最大值函数函数 MAX(,)功能:返回功能:返回expNl和和expN2中的最大者。中的最大者。4)最小)最小值函数函数 MIN(,)功能:返回功能:返回expNl和和expN2中的最小者。中的最小者。5)求模函数)求模函数 MOD(,)功能:将功能:将expNl除以除以expN2的余数返回。如的余数返回。如expN
17、2为正数,正数,则返返回正数,如回正数,如为负数,数,则返回返回负数。数。17第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理6)方根函数)方根函数 SQRT()功能:返回功能:返回expN的平方根,的平方根,结果只取正果只取正值。7)舍入函数)舍入函数 ROUND(,)功能:功能:对expN1的的值进行四舍五入,其舍入位由行四舍五入,其舍入位由expN2确定,确定,expN2为整型。当整型。当expN20时,四舍五入到整,四舍五入到整位的个位,当位的个位,当expN2=1时四舍五入到小数的十分位;当四舍五入到小
18、数的十分位;当expN2=2时,四舍五入到小数的百分位,其余依次,四舍五入到小数的百分位,其余依次类推。推。18第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理2字符字符类函数函数1)宏代)宏代换函数函数 .功能:替功能:替换字符型内存字符型内存变量的内容。量的内容。注意:如函数后面注意:如函数后面还有其他字符,需在函数与字符有其他字符,需在函数与字符间加加“.”;&与字符与字符变量之量之间不能有空格。不能有空格。2)查找字符串函数找字符串函数 AT(,)功能:在功能:在expC2中中查找找expC1,并返回它在
19、,并返回它在expC2中第一中第一次出次出现的起始位置(当无的起始位置(当无expN时)。如)。如expC1不在不在中,中,则返回返回值为0。expN规定了定了查找找expC1出出现的次数,此的次数,此时显示示结果果为最后一次的起始位置。最后一次的起始位置。19第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理3)截取子串函数)截取子串函数 SUBSTR(,)功能:在功能:在expC中从起始位置中从起始位置expN1开始,截取开始,截取expN2个字个字符,如无符,如无expN2,则截取到最后一个字符。截取到最后一
20、个字符。4)删除空格字符函数除空格字符函数 TRIM()功能:功能:删除除expC中右中右边的空格。的空格。5)生成空格函数)生成空格函数 SPACE()功能:生成由功能:生成由expN个空格字符个空格字符组成的字符串。成的字符串。20第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理3时间日期日期类函数函数1)日期函数)日期函数 DATE()功能:返回功能:返回计算机系算机系统当前日期。当前日期。2)日期函数)日期函数 TIME()功能:返回功能:返回计算机系算机系统当前当前时间。3)取日函数)取日函数 DAY(
21、)功能:返回功能:返回expD中的日中的日值。4)取月函数)取月函数 MONTH()功能:返回功能:返回expD中的月中的月值。5)取年函数)取年函数 YEAR()功能:返回功能:返回expD中的年中的年值。21第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理4转换类函数函数1)小写)小写转换成大写函数成大写函数UPPER()功能:将功能:将expC给出的小写字符出的小写字符转换成大写。成大写。2)大写)大写转换成小写函数成小写函数LOWER()功能:将功能:将expC给出的大写字符出的大写字符转换成小写。成小写
22、。3)字符型)字符型转换成日期型函数成日期型函数CTOD()功能:将功能:将expC转换成日期型成日期型值。注意:注意:expC应是日期格式字符型表达式。是日期格式字符型表达式。4)日期型)日期型转换成字符型函数成字符型函数DTOC(,1)功能:将日期型功能:将日期型值转换成字符串。成字符串。注意:如函数中未使用参数注意:如函数中未使用参数1,则函数返回的字符串与函数返回的字符串与expD具有相同具有相同的格式,否的格式,否则函数返回函数返回值的格式的格式为:yyyymmdd。22第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数
23、据处理的数据处理5)数)数值型型转换成字符型函数成字符型函数 STR(,)功能:将功能:将expN1转换成字符串。成字符串。expN2指出指出转换成字符成字符 串的串的总长度,度,expN3确定小数点后的小数位数。确定小数点后的小数位数。6)字符型)字符型转换成数成数值型函数型函数 VAL()功能:将功能:将expC转换成数成数值。注意:注意:expC的的值必必须是数字、加号或减号开是数字、加号或减号开头的字符的字符 串,否串,否则将将转换成。成。23第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理5测试类函数函
24、数1)字符串)字符串长度度测试函数函数LEN()功能:返回功能:返回expC所所给出的字符串的字符个数,其出的字符串的字符个数,其长度度为0254,对于超于超过254个字符的字符串,返回个字符的字符串,返回值为254;对于于空字符串,返回空字符串,返回值为0。2)测试文件文件结束函数束函数EOF()功能:功能:测试由由expN所指定的工作区中的所指定的工作区中的记录指指针是否到达最是否到达最后后记录的下面,如已到达,表示文件的下面,如已到达,表示文件结束,返回束,返回逻辑真真值,否否则返回返回逻辑假假值。如缺省。如缺省expN,测试当前工作区中的当前工作区中的记录。24第二章 面向对象程序设计
25、基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理3)测试文件起始函数文件起始函数BOF()功能:当功能:当expN所指定的工作区中的所指定的工作区中的记录指指针已超越第一条已超越第一条记录时,返回,返回逻辑真真值,否,否则返回返回逻辑假假值。缺省。缺省,测试当前工作区中的当前工作区中的记录。4)记录号号测试函数函数RECNO()功能:函数返回由功能:函数返回由expN所指定的工作区中的所指定的工作区中的记录指向的指向的记录号,如缺省号,如缺省expN,则表示表示对当前的工作区当前的工作区进行行测试。25第二章 面向对象程序设计基础返回返
26、回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理2.3.2 运算符和表达式运算符和表达式 表达式是指表达式是指简单的常量、的常量、变量和函数或它量和函数或它们之之间通通过运算符关运算符关联起起来的有特定意来的有特定意义的式子。根据不同的运算符及表达式的式子。根据不同的运算符及表达式结果的不同,表达果的不同,表达式可分式可分为:算:算术表达式、字符表达式、表达式、字符表达式、时间日期表达式、日期表达式、逻辑表达式和表达式和关系表达式五种关系表达式五种类型。型。1算算术表达式表达式 运算符功能表达式示例结 果*或乘方运算2*3,528,25*、/乘、
27、除6*7/314%模运算10%42+、加、减50+2646算术运算符和表达式算术运算符和表达式 26第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理2字符表达式字符表达式 运算符功能表达式示例结果+字符串连接“abc”+“def”“abc def”将前一个字符串尾部的空格移至后字串尾部“abc”“def”“abcdef”$比较,查看$前面的字符串是否包含在$后面的字符串中(1)“abc”$“abcdef”(2)“abcdef”$“abcdef”(3)“ijk”$“abcdef”(1).T.(2).T.(3).F.
28、字符运算符和表达式字符运算符和表达式 27第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理3日期表达式日期表达式日期运算符和表达式运算符功能表达式示例结果+相加2002/10/10+52002/10/15日期相减2002/15/10 2002/10/10 528第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理4关系表达式关系表达式 关系表达式可由关系运算符和字符表达式、日期表达关系表达式可由关系运算符和字符表达式、日期表达式、算式、
29、算术表达式表达式组成,其运算成,其运算结果是果是逻辑型常量。关系运型常量。关系运算是运算符两算是运算符两边同同类元素的比元素的比较,关系成立,关系成立结果果为.T.T.;反之反之结果果为.F.F.。关系运算符及表达式如下表关系运算符及表达式如下表:29第二章 面向对象程序设计基础返回返回运算符功能 表达式示例 结果=等于,在进行字符串比较时受SETEXACT命令影响(1)3=3(2)“abc”=“ab”(1).T.(2).T.(SETEXACT OFF);.F.(ON)=与“=”相似,但在字符串比较时不受SET EXACT命令影响,要求字符串的长度相等,而且每个字符也对应相等。“abc”=“a
30、b”无论是ET EXACT OFF还是SETEXACT ON都为.F.大于12.F.=大于或等于2=1.T.小于2354.T.=小于或等于1998/02/16=1998/02/16.T.或!=a或#不等于(1)104(2)“Open”!=“Open”(3).T.#.F.(1).T.(2).F.(3).T.30第二章 面向对象程序设计基础返回返回 2.3 Visual FoxPro 2.3 Visual FoxPro 的数据处理的数据处理5逻辑表达式表达式运算符说明表达式例子结果AND逻辑与运算.T.AND.F.F.OR逻辑或运算.T.OR .F.T.NOT或!逻辑非运算(1)NOT.T.(2)
31、!.F.(1).F.(2).T.逻辑运算符和表达式 31第二章 面向对象程序设计基础返回返回 2.4 2.4 面向对象技术概述面向对象技术概述2.4.1 什么是面向什么是面向对象象 从程序从程序设计方法的角度看面向方法的角度看面向对象是一种新的程序象是一种新的程序设计范型范型(paradigm),其基本思想是使用,其基本思想是使用对象、象、类、继承、承、封装、聚合、关封装、聚合、关联、消息、多、消息、多态性等基本概念来性等基本概念来进行程序行程序设计。面向面向对象程序象程序设计同同结构化程序构化程序设计相比最大的区相比最大的区别就在于:前者首先关心的是所要就在于:前者首先关心的是所要处理的数据
32、,而后者首先理的数据,而后者首先关心的是功能。面向关心的是功能。面向对象程序象程序设计是一种是一种围绕真真实世界的世界的概念来概念来组织模型的程序模型的程序设计方法,它采用方法,它采用对象来描述象来描述问题空空间的的实体。体。32第二章 面向对象程序设计基础返回返回 2.4 2.4 面向对象技术概述面向对象技术概述2.4.2 面向面向对象的基本特征象的基本特征面向面向对象的象的编程方法具有四个基本特征:程方法具有四个基本特征:1抽象抽象抽象就是忽略一个主抽象就是忽略一个主题中与当前目中与当前目标无关的那些方面,以便更充分地注无关的那些方面,以便更充分地注意与当前目意与当前目标有关的方面。有关的
33、方面。2继承承继承是一种承是一种联结类的的层次模型,并且允次模型,并且允许和鼓励和鼓励类的重用,它提供了一的重用,它提供了一种明确表述共性的方法。种明确表述共性的方法。对象的一个新象的一个新类可以从可以从现有的有的类中派生,中派生,这个个过程称程称为类继承。承。3封装封装封装是面向封装是面向对象的特征之一,是象的特征之一,是对象和象和类概念的主要特性。封装是把概念的主要特性。封装是把过程和数据包程和数据包围起来,起来,对数据的数据的访问只能通只能通过已定已定义的界面。的界面。4多多态性性多多态性是指允性是指允许不同不同类的的对象象对同一消息作出响同一消息作出响应。33第二章 面向对象程序设计基础返回返回 2.5 2.5 面向对象基本概述面向对象基本概述2.5.1 类 类是一种复是一种复杂的数据的数据类型,它是将不同型,它是将不同类型的数据和型的数据和与与这些数据相关的操作封装在一起的集合体。些数据相关的操作封装在一起的集合体。类具有抽象具有抽象性、性、隐藏性和封装性。藏性和封装性。2.5.2 对象 对象是由数据(数据成象是由数据(数据成员、成、成员变量、量、实例例变量、量、对象的局部象的局部变量)及其操作(操作、方法,成量)及其操作(操作、方法,成员函数、消息函数、消息处理理过程)所构成的封装体,是程)所构成的封装体,是类的具体的具体实例。例。34