Object Pascal语言.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Object Pascal语言.ppt》由会员分享,可在线阅读,更多相关《Object Pascal语言.ppt(107页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Delphi 程程序序设设计计第第3章章Object Pascal 语言语言 本章要点本章要点:Syntactic elements Syntactic elements语法元素语法元素 Data types Data types数据类型数据类型 Procedures and functions Procedures and functions过程和函过程和函数数 Classes and objects Classes and objects类和对象类和对象1第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.1 Syntactic elemen
2、ts语法元素语法元素ASCII 字符集字符集字母是大小写无关字母是大小写无关空格空格#32和控制符和控制符#0 到到#31,其中,其中#13 叫回叫回 车符或行的结束符车符或行的结束符 根本语法元素组合成表达式、声明和命令语句。命令语句描述算法行为,它是可执行的;表达式是一个语法单元,它出现在命令语句中并表示一个值;声明定义一个标志符比方函数或变量的名称,可以用在表达式或命令语句中.2第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.1 3.1 根本语法元素根本语法元素特殊符号 特殊符号是非文字和数字字符,或这类字符的组合,它们有固定的意义。单
3、字符的特殊符号:#$&()*+,-./:;组合字符特殊符号:(*(.*).)./:=注意:!惊叹号、双引号、%百分号、?问号、反斜杠、_下划线、|通道和破折号不是特殊符号。3第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言用来表示常量、变量、字段、类型、属性、过程、函数、程序、单元、库以及包。长度是255 个字符以字母或下划线_开始,后面可以是字母、数字和下划线,不包含空格、关键字不能用作标志符。3.1.2 标志符当一个标志符名称相同在多个地方声明时,使用它时可能要对标志符进行限定。限定标志符的语法为:identifier1.identifier
4、2例如:Form1.Button1.Click它调用Form1 中Button1 的Click 方法4第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.1.3 关键字,保存字关键字,保存字5第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.1.4 标签标签标签是一个不超过4 位的阿拉伯数字序列,也就是从0 到9999,打头的0 没有意义.标签用于goto 语句中。3.1.5 常量字符串常量字符串常量字符串常量字符串character string也称为文字串也称为文字串string litera
5、l或串常量或串常量string const,它由引用串,它由引用串由一对单引号括起来的文字串、控制串控制符由一对单引号括起来的文字串、控制串控制符构成的串或这两种串的组合而构成。只有引用串构成的串或这两种串的组合而构成。只有引用串可以包含分隔符。可以包含分隔符。BORLAND BORLAND Youll see Youll see 空串 一个空格#89#111#117就相当于引用串 You6第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.2 注释和编译器指示字注释将被编译器忽略,除非它们用作分隔符或编译器注释将被编译器忽略,除非它们用作分隔符
6、或编译器指示字。指示字。有以下几种方式创立注释:有以下几种方式创立注释:由一对花括号所包含的文字构成注释由一对花括号所包含的文字构成注释(*(*由左圆括号加一个星号和一个星号加右圆括号之由左圆括号加一个星号和一个星号加右圆括号之间的文字也构成注释间的文字也构成注释*)*)/由两个斜杠开始直到这一行的结束,这里的文字由两个斜杠开始直到这一行的结束,这里的文字是注释是注释假设假设$符紧跟在符紧跟在 或或(*(*之后,那么这里的注释是编之后,那么这里的注释是编译器指示字。例如译器指示字。例如$WARNINGS OFF$WARNINGS OFF它告诉编译器不要产生警告信息。它告诉编译器不要产生警告信息
7、。7第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.3 Expressions表达式表达式表达式是一个有返回值的语句构造。比方,X 变量 X 变量地址 15 整数常量InterestRate 变量 Calc(X,Y)函数调用X*Y X和Y 的乘积 Char(48)类型转换X=1.5 布尔 C in Range1 布尔not Done 布尔的否 a,b,c 集合Z/(1-Z)Z 和(1-Z)的商8第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言运算符运算符运算符就像Object Pascal 的内
8、置函数,它是语言的一局部。运算符包括:not */div mod and shl shr as+-or xor=in 和is。、not 和 是一元运算符使用一个运算数,+和-或者是一元的,或者是二元的,其它所有运算符为二元运算符使用两个运算数。除了 运算符,它在运算数的后面比方,P,其它一元运算符总是位于运算数的前面比方,-B。二元运算符位于运算数的中间比方,A7。一些运算符的行为因为传给它们的数据类型不同而不同。比方,not 运算符用于整数时,是对它的位进行求反运算,而对布尔类型进行逻辑非运算。这类运算符会在后面的多个分类中出现。除了,is 和in,其它运算可应用在Variant 类型上。9
9、第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言运算符 运算 运算数类型 返回类型 例子 +加 整数实数 整数实数 X+Y-减 整数,实数 整数,实数 Result-1 *乘 整数,实数 整数,实数 P*InterestRate /实数除 整数,实数 实数 X/2div 整数除 整数 整数 Total div UnitSizemod 余数 整数 整数 Y mod 6+正 整数,实数 整数,实数 +7-负 整数,实数 整数,实数 -X算术运算符算术运算符10第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语
10、言言算术运算符规那么算术运算符规那么不管x 和y 的类型是什么,x/y 的结果总是扩展类型;对其它运算符,只要有一个运算数是实数类型,它的结果就是扩展类型;另外,只要有一个运算数是Int64 类型,它的结果就是Int64类型;否那么,结果就是整数类型。如果一个运算数是整数的子界类型,它就像整数类型一样被对待。x div y 的值取整数,也就是取得x/y 的值,然后以0 的方向取得最近的整数。mod 运算返回对运算数进行整数除后得到的余数。换句话说,就是x mod y=x-(x div y)*y。假设y 为0 的话,表达式x/y、x div y 和x mod y 将发生运行时错误。11第第三三章
11、章 O Ob bj je ec ct t P Pa as sc ca al l语语言言布尔运算符布尔运算符运算符 运算 运算数类型 结果类型 例子Not 否 布尔 布尔 not(C in MySet)and 与 布尔 布尔 Done and(Total 0)Or 或 布尔 布尔 A or BXor 异或 布尔 布尔 A xor Bx and y 形式的表达式,当且仅当形式的表达式,当且仅当x 和和y 都为都为True时,它的结果才为时,它的结果才为True。布尔运算符规那么布尔运算符规那么12第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言运算符
12、 运算 运算数类型 返回类型 例子+并集 集合 集合 Set1+Set2 差集 集合 集合 S T*交集 集合 集合 S*T=小于等于子集集合 布尔 Q=大于等于超集 集合 布尔 S1=S2=等于 集合 布尔 S2=MySet 不等于 集合 布尔 MySet S1In 成员关系 序数,集合 布尔 A in Set1集合运算符集合运算符13第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言以下规那么适用于以下规那么适用于+、和和*运算符:运算符:当且仅当序数集合根底类型中的一个值当且仅当序数集合根底类型中的一个值O O 属于集合属于集合X X 或或集
13、合集合Y Y或同时属于或同时属于X X 和和Y Y时,时,O O 属于属于X+YX+Y;当且仅当;当且仅当O O 属属于于X X 但不属于但不属于Y Y 时,时,O O 属于属于X YX Y;当且仅当;当且仅当O O 同时属于同时属于X X 和和Y Y时,时,O O 属于属于X*YX*Y。+、和和*的运算结果属于集合类型的运算结果属于集合类型set of A.Bset of A.B,这里,这里A A 是是结果中的最小序数,结果中的最小序数,B B 是结果中的最大序数。是结果中的最大序数。以下规那么适用于以下规那么适用于=、=、和和in in 运算符:运算符:?只有当只有当X X集合中的每个成员
14、也是集合中的每个成员也是Y Y集合中的成员时,集合中的成员时,X=Y X=W Z=W 等同于等同于W=ZW=Z;只有当;只有当U U集合和集合和V V集合正好拥有相同的成员时,集合正好拥有相同的成员时,U=V U=V 才为真,否那么才为真,否那么U U V V为真;为真;?对于序数对于序数O O 和集合和集合S S,只有当,只有当O O 是是S S 的一个成员的一个成员时,时,O in S O in S 才为真。指针一样,只有当才为真。指针一样,只有当C C 和和D D 指向同一个实指向同一个实例对象时,例对象时,C=D C=D 为真,否那么为真,否那么C D C D 为真;当用于类为真;当用
15、于类引用时,只有当引用时,只有当C C 和和D D 表示同一个类时,表示同一个类时,C=D C=D 为真,否那为真,否那么么C D C D 为真。为真。14第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言类运算符类运算符as 和和is 运算符使用类和对象实例作为运算数,运算符使用类和对象实例作为运算数,as 也用也用于接口类型于接口类型运算符 运算符返回一个变量、函数、过程或方法的地址,也就是说,运算符构建一个指向运算数的指针。下面的规那么适用于 运算符:?假设X 是一个变量,X 返回X 的地址。假设默认的编译器指示字$T 在起作用,那么X 的类
16、型是Pointer通用指针;在$T+状态下时,X 的类型是T,这里T 是X 的类型;?假设F 是一个例程一个函数或过程,F 返回F 的入口点,F 的类型总是Pointer;?当 作用于类的方法时,必须使用类名来限定方法名。比方它指向TMyClass 的DoSomething 方法。15第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言运算符优先级运算符优先级运算符 优先级,not 第一级最高*,/,div,mod,and,shl,shr,as 第二级+,or,xor 第三级=,=,in,is 第四级最低16第第三三章章 O Ob bj je ec
17、ct t P Pa as sc ca al l语语言言集合构造器语法:item1,.,itemn 这里,每个item 或者是表示集合根底类型中的一个有序值表达式,或者是由两个点.连接起来的一对这样的值表达式。假设一个条目item是x.y 的形式,它是从x 到y 范围间包括x 和y所有的有序值的简写。但假设x 比y 大,那么x.y 不表示任何内容,x.y是空集。集合构造器 表示空集,而x表示一个集合,它仅有的一个成员是x 值。red,green,MyColor1,5,10.K mod 12,23A.Z,a.z,Chr(Digit+48)17第第三三章章 O Ob bj je ec ct t P
18、Pa as sc ca al l语语言言3.3.2 类型转换强制类型转换临时改变一个表达式的类型。强制类型转换临时改变一个表达式的类型。比方,比方,Integer(A)Integer(A)把一个字符把一个字符A A 转换为一个整数。转换为一个整数。强制类型转换的语法是强制类型转换的语法是typeIdentifier(expression)typeIdentifier(expression)假设表达式是一个变量,结果被称为变量转换;否那么,假设表达式是一个变量,结果被称为变量转换;否那么,结果是一个值转换。虽然它们的语法相同,但它们有不结果是一个值转换。虽然它们的语法相同,但它们有不同的转换规那
19、么。同的转换规那么。变量转换变量转换 Integer(A)不能出现在赋值语句的左边。不能出现在赋值语句的左边。值转换:值转换:占用的内存相同,可以把任何变量转换为任何类型,变量转换可出现在赋值语句的任何一边,同时可以把变量转换为过程类型。18第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3.4 数据类型、变量和常量类型在本质上是一种数据的名称。当声明一个变量时,必须指定它的类型;类型决定了它的取值范围和可以进行的操作运算。每个表达式返回一个特定类型的值,函数也是如此;大多数函数和过程要求指定类型的参数。Object Pascal 是一种强类型语
20、言,也就是说,它对各种数据类型加以区分,并且不总是允许你用一种数据类型替代另一种。这通常是有好处的,因为它使编译器能聪明地处理数据并且更深入地验证你地代码,可以防止产生难于调试的运行时错误。但当你需要更多灵活性的时候,也有方法可以绕过强类型限制,它们包括强制类型转换typecasting、指针、变体类型Variant、记录中的变体局部Variant partsin records和绝对地址变量。19第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言有序类型和实数类型一、有序类型整数、字符、布尔、枚举和子界类型有次序的数值集合,除了它的第一个值以外,
21、其它每个值都有一个唯一的前驱值;除了最后一个外,其它每个值都有一个唯一的后继值。并且,每个值都有一个序数决定它在这个类型中的位置。对整数类型,一个值的序数为它本身的值 子界类型保存它们的根底类型的序数值 对其它有序类型,默认情况下,第一个值的序数为0,下一个为1,依此类推。声明一个枚举类型时,可明确地覆盖默认值。20第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言1、整数类型表示所有数字的一个子集。一般整数类型是Integer 和Cardinal21第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言2
22、、字符类型根本字符类型是AnsiChar 和WideChar。AnsiChar 是8 位字符集,它们将依照本地字符集的顺序排列,这可能是多字节的。AnsiChar 原先是根据ANSI 字符集建立的,但现在扩展为可以指定本地字符集。WideChar 使用多于一个字节来表示每个字符。在当前实现中,WideChar 依据Unicode 字符集要意识到它的实现将来可能会改变,使用一个字的宽度16-bit来存储字符。开头的256 个Unicode 字符对应于ANSI 字符。一般字符类型是Char,它相当于AnsiChar。一个长度为1 的字符串常量,比方A,可以表示一个字符。内置函数Chr,返回一个在A
23、nsiChar 或WideChar取值范围内任意一个整数的字符值。比方,Chr65返回字母A。22第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言3、布尔类型Boolean 类型的变量占据一个字节,Boolean 值由内置的常数True 和False 来表示。布尔表达式不能和整数或实数进行换算。所以,假设X 是一个整数变量,语句if X then.;会产生编译错误。把这个变量强制转换为布尔类型也是不可取的,但下面的用法可以正常工作:if X 0 then.;use longer expression that returns Boolean va
24、lue var OK:Boolean use Boolean variable.if X 0 then OK:=True;if OK then.;23第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言5、枚举类型枚举类型定义一个有次序的值的集合,定义语法为:type typeName=(val1,.,valn)例如:例如:Type TSound=(tsClick,tsClack,tsClock);Answer=(ansYes,ansNo,ansMaybe);在声明变量时,可以直接使用val1,valn结构,它就像一个类型名称:var MyCard:
25、(Club,Diamond,Heart,Spade);但在声明了但在声明了MyCard以后,就不能再同时声明以下语句了:以后,就不能再同时声明以下语句了:var Card1:(Club,Diamond,Heart,Spade);但可以这样:但可以这样:var Card1,Card2:(Club,Diamond,Heart,Spade);24第第三三章章 O Ob bj je ec ct t P Pa as sc ca al l语语言言6、子界类型子界类型表示其它有序类型称为根底类型的一个子集:它的形式为Low.High。这里,Low 和High是同一种有序类型的常量表达式,并且,Low 比Hi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Object Pascal语言 Pascal 语言
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内