第2章 Object Pascal语言基础 本章要点: 区 Object Pascal基本知识 区常用数据类型 常量变量的定义及使用 区用运算符及表达式
本章要点: Object Pascal基本知识 常用数据类型 常量变量的定义及使用 用运算符及表达式 第2章 Object Pascal语言基础
21基本概念 Delphi7.0是一个基于 Object Pasca语言的 Windows应 用程序开发系统,在所有的事件处理过程和应用程序中都是 使用它来编写程序代码。 Object Pascals编程语言是在 Pascal 语言的基础上发展起来的,它继承了 Pascal语法严谨、数据 结构丰富等优点,同时融入了面向对象编程的语法要素,使 之成为一种优秀的面向对象编程语言。 Inprise eph
2.1 基本概念 Delphi 7.0是一个基于Object Pascal语言的Windows应 用程序开发系统,在所有的事件处理过程和应用程序中都是 使用它来编写程序代码。Object Pascal编程语言是在Pascal 语言的基础上发展起来的,它继承了Pascal语法严谨、数据 结构丰富等优点,同时融入了面向对象编程的语法要素,使 之成为一种优秀的面向对象编程语言
21.1保留字 首先介绍 Object Pascal语言的最基本内容:保留字和标志符。 保留字( Reserved words)是由系统规定的、具有特定意义的单词。 在编程时不能被重新定义或另作他用。 object Pascal语言规定的保留字有 65个,详见本教程P23页表2-1。 除了上述的保留字外, Private、 Protected、Pub|ic、Pub| ished和 Automated在定义对象类型时也作为保留字,而在其他场合则作为指 令符。单词at和on也具有特殊的含义 注意: Object Pascal编程语言和许多编程语言不同,它对单词的大 小写是不敏感的。 object Pasca不区分大小写。N、i和n都被看做 是同样的意义。 Inprise eph
2.1.1 保留字 首先介绍Object Pascal语言的最基本内容:保留字和标志符。 保留字(Reserved Words)是由系统规定的、具有特定意义的单词。 在编程时不能被重新定义或另作他用。Object Pascal 语言规定的保留字有 65个,详见本教程P23页表2-1。 除了上述的保留字外,Private、Protected、Public、Published 和 Automated在定义对象类型时也作为保留字,而在其他场合则作为指 令符。单词at和on也具有特殊的含义。 注意:Object Pascal 编程语言和许多编程语言不同,它对单词的大 小写是不敏感的。Object Pascal不区分大小写。IN、in和In都被看做 是同样的意义
212标识符 标识符是 Object Pasca语言中用来表示应用程序量的名称。包括: 变量(var)、常量( Const)、类型(Type)、过程( Procedure)、方法 ( Method)等。 标识符分为标准标识符和自定义标识符两类。 标准标识符是 bject Pascal语言系统预先分配给标准常量、标准 类型、标准函数、标准过程及标准文件使用的标识符。如标准常量: False、True;标准类型: integer、char、real;标准函数:Abs、Sqr、 Cos等。 自定义标识符是程序员根据需要为自己定义的常量、变量、类型、 函数、过程以及所编写的程序名等。 Object Pasca标识符由字母、数 字、下划线组成,其规定为 (1)必须以字母或下划线开始; (2)不能与保留字相同; (3)避免与 Object Pascal已经使用的标准标识符相同。 Inprise eph
2.1.2 标识符 标识符是Object Pascal语言中用来表示应用程序量的名称。包括: 变量(Var)、常量(Const)、类型(Type)、过程(Procedure)、方法 (Method)等。 标识符分为标准标识符和自定义标识符两类。 标准标识符是Object Pascal语言系统预先分配给标准常量、标准 类型、标准函数、标准过程及标准文件使用的标识符。如标准常量: False、True;标准类型:integer、char、real;标准函数:Abs、Sqr、 Cos等。 自定义标识符是程序员根据需要为自己定义的常量、变量、类型、 函数、过程以及所编写的程序名等。Object Pascal标识符由字母、数 字、下划线组成,其规定为: (1)必须以字母或下划线开始; (2)不能与保留字相同; (3)避免与Object Pascal已经使用的标准标识符相同
21.3指令符 指令符( directives)也是具有特殊意义的单词,但与保留字不同的是 可以将指令符定义为标识符, Object Pascal不会指示出错,但这容易混淆。 object Pascal规定的指令符见表22 表22 Object Pascal语言规定的指令字 absolute abstract assembler automated cdcel contains default dispid dynamic export external far forward implement index message name near S nodefault overload override package pascal private protected public read d readonly register retroduce requires resident safecall stdcall stored virtual ite writ writeonly uprise Dephi
2.1.3 指令符 指令符(directives)也是具有特殊意义的单词,但与保留字不同的是 可以将指令符定义为标识符,Object Pascal不会指示出错,但这容易混淆。 Object Pascal 规定的指令符见表2-2。 absolute abstract assembler automated cdcel contains default dispid dynamic export external far forward implement s index message name near nodefault overload override package pascal private protected public read readonly register retroduce requires resident safecall stdcall stored virtual write writeonly 表2-2 Object Pascal 语言规定的指令字
22数据类型 描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序 加工处理的符号的集合称为数据。数据的一个重要特征就是其所属的数据 类型,数据类型不仅确定了该类数据的表示形式和取值范围,而且还确定 数据所能够参加的各种运算 Object Pasca提供了多种数据类型,包括标准数据类型和高级数据类 型。标准数据类型属于○ bject Pascal内部约定的数据类型,无需定义就可 以直接使用。标准数据类型有整型( Integer)、实型(Real)、字符型 ( Character)、字符串型( String)、布尔型( Boolean)五种。高级数 据类型体现了特殊的数据结构,在使用之前必须由用户自己进行定义。高 级数据类型有枚举型( Enumerated)、子界型( Subrange)、集合类型 (Set)、数组类型(Aray)、记录类型( Record)文件类型(Fie、 类类型( Class)、类引用类型( Class Reference)、接口类型 ( Interface)、指针类型( Pointer)、过程类型( Procedura)、可变类 型( Variant)。 Inprise eph
2.2 数据类型 描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序 加工处理的符号的集合称为数据。数据的一个重要特征就是其所属的数据 类型,数据类型不仅确定了该类数据的表示形式和取值范围,而且还确定 了数据所能够参加的各种运算。 Object Pascal提供了多种数据类型,包括标准数据类型和高级数据类 型。标准数据类型属于Object Pascal内部约定的数据类型,无需定义就可 以直接使用。标准数据类型有整型(Integer)、实型(Real)、字符型 (Character)、字符串型(String)、布尔型(Boolean)五种。高级数 据类型体现了特殊的数据结构,在使用之前必须由用户自己进行定义。高 级数据类型有枚举型(Enumerated)、子界型(Subrange)、集合类型 (Set)、数组类型(Array)、记录类型(Record)文件类型(File)、 类类型(Class)、类引用类型(Class Reference)、接口类型 (Interface)、指针类型(Pointer)、过程类型(Procedural)、可变类 型(Variant)
2.21整型 整数包括正整数、负整数和零。 整型是存储整数数据的类型。 Object Pascal包括9种形式的整型数 据,详见本教程P25页表2-3 前2种为一般整型,后7种为基本整型,应尽量使用 J Integer、 Cardinal 两种基本类型,因为它们在各种CPU和操作系统中都提供最佳的性能。 通常,作用于整数的算术运算符返回 Integer类型的值。在当前执行中, 等价于32位的长整型( LongInt)。仅当对int64类型执行运算时,运算结 果返回lnt64类型。因此,下面的代码执行后得到的结果是不正确的: ar i: Integer; j: Int64 i:=High( nteger);∥取 Integer类型中的最大值 j:=i+1; 要使返回值是lnηt64类型,在上面的情况中可以将i转换为nηt64。代码如下 j:=lnt64()+1; Inprise eph
2.2.1 整型 整数包括正整数、负整数和零。 整型是存储整数数据的类型。Object Pascal包括9种形式的整型数 据,详见本教程P25页 表2-3。 前2种为一般整型,后7种为基本整型,应尽量使用Integer、Cardinal 两种基本类型,因为它们在各种CPU和操作系统中都提供最佳的性能。 通常,作用于整数的算术运算符返回Integer类型的值。在当前执行中, 等价于32位的长整型(LongInt)。仅当对Int64类型执行运算时,运算结 果返回Int64类型。因此,下面的代码执行后得到的结果是不正确的: var i: Integer; j: Int64; ... i := High(Integer); //取Integer类型中的最大值 j := i + 1; 要使返回值是Int64类型,在上面的情况中可以将 i 转换为Int64。代码如下: ... j := Int64(i) + 1;
222实型 实数是最常用的数据类型 在 Object Pascal中实数有两种表示方法:小数表示法和科学计数法。 例如: 3.6,2.4e0,-1.2e-5,3E7 小数表示法与日常数学中所用表示方法相同。科学计数法中,e之前 表示有效数字,e之后数字表示10的幂。即 1.2e5=(-12)×10-5=0.000012 需要注意的是小数表示法中小数点前后都必须有数字,科学计数法中 e前后都必须有数字,e可以大街在。 实型是存储实数数据的类型。 Object Pascal包括5种形式的实型数 据,详见本教程P26表2-4。 前六种为基本数据类型,Real为一般实型。最常用的实型是Rea类 型,它与 Double等价。 Currency是专为处理货币而设计的,该类型与其 他实型进行运算时, Delphi自动将结果转化为 Currency类型。 Inprise eph
2.2.2 实型 实数是最常用的数据类型。 在Object Pascal中实数有两种表示方法:小数表示法和科学计数法。 例如: -3.6,2.4e0,–1.2e-5,3E7 小数表示法与日常数学中所用表示方法相同。科学计数法中,e之前 表示有效数字,e之后数字表示10的幂。即 –1.2e-5=(-1.2) ×10-5=-0.000012 需要注意的是小数表示法中小数点前后都必须有数字,科学计数法中 e前后都必须有数字,e可以大写成E。 实型是存储实数数据的类型。Object Pascal包括5种形式的实型数 据,详见本教程P26表2-4。 (图1-2) 前六种为基本数据类型,Real为一般实型。最常用的实型是Real类 型,它与Double等价。Currency是专为处理货币而设计的,该类型与其 他实型进行运算时,Delphi自动将结果转化为Currency类型
223字符型 字符型是存储单个字符的类型。 Object Pascal包括3种形式的字符型数 据,详见表25。 表2-5 Object Pascal语言的字符型 类型 名称 字节数 取值范围 Ansi字符型 Ansichar 扩展ANSI字符集 宽字符型 Widechar 2 UniCode字符集 字符型 Char 1(2) 扩展ANSI字符集 基本字符类型是 Ansichar和 Widechar。 Ansichar的尺寸是一个字节(8 位),其值参照本地字符集。 Ansichar最初模仿ANSl字符集,但现在用于 扩大到当前的本地字符集。 Widechar字符用多于一个字节来表示每个字符 Widechar的尺寸是一个字(16位),其字符顺序参照 Unicode字符集, Unicode字符集中的前256个字符对应ANS字符 般字符类型是Char,等价于 Ansichar 字符类型数据的表示方法是用两个单引号括起单个字符如:A、6'、'. ’表示空格符。 Inprise eph
2.2.3 字符型 字符型是存储单个字符的类型。Object Pascal包括3种形式的字符型数 据,详见表2-5。 基本字符类型是AnsiChar和WideChar。AnsiChar的尺寸是一个字节(8 位),其值参照本地字符集。AnsiChar最初模仿ANSI字符集,但现在用于 扩大到当前的本地字符集。WideChar字符用多于一个字节来表示每个字符。 WideChar的尺寸是一个字(16位),其字符顺序参照Unicode字符集, Unicode字符集中的前256个字符对应ANSI字符。 一般字符类型是Char,等价于AnsiChar。 字符类型数据的表示方法是用两个单引号括起单个字符如:'A'、'6'、' . '。 ' ' 表示空格符。 表2-5 Object Pascal 语言的字符型 类型 名称 字节数 取值范围 Ansi字符型 AnsiChar 1 扩展ANSI字符集 宽字符型 WideChar 2 UniCode字符集 字符型 Char 1(2) 扩展ANSI字符集
224字符串型 字符串型是存储字符串数据的类型。 Object Pascal包括4种形式的字 符串型数据,详见本教程P27页表2-6。 保留字 string的作用如一般类型的标识符。例如 var S: string 创建了变量S,用于保存串。在默认的编译指示{$H+}状态下,编译 器将 string(后面没有跟随方括号和数字)解释为 AnsiString;使用编译 指示{$H}时,解释为 Short String。 Short String类型串的长度在0到255之间。 Short String串的长度可以动 态改变,其占用的内存是静态的,总是256字节;第一个字节存储串的长 度,其余255个字节存储串中的字符 AnsiString也叫做长串( long string),用来表示动态分配的串 Wide String类型表示16位 Unicode字符的动态分配的串。 Wide String 类型大部分的特性与 Ansistring类型相似 Object Pasca还支持其他最大长度在0到255之间的短串。可以通过 在保留字 string.后边附加方括号括起来的数字来表示。例如: var My String: string[ 100] 创建了一个叫做 MyString的变量,其最大长度为100个字符。 Inprise eph
2.2.4 字符串型 字符串型是存储字符串数据的类型。Object Pascal包括4种形式的字 符串型数据,详见本教程P27页表2-6。 保留字string的作用如一般类型的标识符。例如: var S: string; 创建了变量S,用于保存串。在默认的编译指示{$H+}状态下,编译 器将string(后面没有跟随方括号和数字)解释为AnsiString;使用编译 指示{$H-}时,解释为ShortString。 ShortString类型串的长度在0到255之间。ShortString串的长度可以动 态改变,其占用的内存是静态的,总是256字节;第一个字节存储串的长 度,其余255个字节存储串中的字符。 AnsiString也叫做长串(long string),用来表示动态分配的串。 WideString类型表示16位Unicode字符的动态分配的串。WideString 类型大部分的特性与AnsiString类型相似。 Object Pascal还支持其他最大长度在0到255之间的短串。可以通过 在保留字string后边附加方括号括起来的数字来表示。例如: var MyString: string[100]; 创建了一个叫做MyString的变量,其最大长度为100个字符