======================================================
注:本文源代码点此下载
======================================================
这一章把delphi的可视化元素放在一边,主要讲解delphi使用的语言-object pascal语言。也就是面向对象的pascal,简单的说就是加入了类的pascal。
2.1 注释
注释是对原程序的说明部分,它是对原程序中的语句,或者编程的目的作的说明,是给程序员来看的,并不参加程序的编译,不会被编译成为可执行的代码。object pascal支持三种类型的注释:
{这是花括号注释,被花括号包括的部分为注释的内容}
(*这是圆括号加星号的注解,被圆括号加星号包括的部分为注释的内容*)
//这是双斜线注释,是c++风格的行注解,在双斜线右侧到行尾的内容为注释的内容
注意 相同类型的注释不能嵌套。虽然不同类型的注释进行嵌套在语法上是合法的,但不建议这个做。
2.2 过程和函数特征
介绍一些新的或鲜为人知的特性。
2.2.1 圆括号
虽然不是在delphi 5.0才有的,但object pascal中一个鲜为人知的特性是,当调用一个过程或函数时,如果被调用的过程和函数没有参数,圆括号是可以省略的。因此下面两个例子在语法上都是合法的:
form1.show;
form1.show();
2.2.2 重载
delphi4就引进了函数重载的概念(多个过程或函数有相同的名字,但有不同的参数列表)。所有需要重载的方法都要声明,并用overload来指示,示例如下:
procedure hello(i:integer);overload;
procedure hello(s:string);overload;
procedure hello(d:double);overload;
2.2.3 缺省值参数
缺省值参数是在delphi4中被引进的(当调用有缺省值参数的过程和函数时,可以不提供参数)。为了声明一个有缺省值参数的过程或函数,在参数类型后跟一个等号和缺省值,示例如下:
procedure hasdefval(s:string;i:integer = 0); //带缺省参数的过程
hasdefval('hello',26);//带全部参数的调用
hasdefval('hello');//使用缺省参数调用方法,只给出第一个参数
在使用缺省参数时要遵循下列几条规则:
有缺省值的参数必须在参数列表的最后。在一个过程或函数的参数列表中,没有缺省值的参数不能在有缺省值的参数的后面。
有缺省值的参数必须是有序类型、指针类型或集合类型。
有缺省值的参数必须是数值参数或常量参数,不能是引用(out)参数或无类型参数。
2.3 变量
变量只能在var域进行声明,不能像c++一样随用随声明。
object pascal像visual basic但不像c和c++,它的变量名是大小写不敏感的。
object pascal可以使相同类型的变量合并在同一行上声明。如:varname1,varname2: sometype;
全局变量在声明的时候可以赋初值。如:i:integer = 10;
没有赋初值的全局变量会自动被delphi编译器赋初值。当程序开始时,所有的整型数赋为0,浮点数赋为0.0,指针赋为nil,字符串为空等等,因此,在源代码中不必对全局变量初始化。
2.4 常量
在pascal中用const关键字来声明常量,就像在c语言中const关键字一样。在object pascal语言中不需要在对常量赋值时声明常量的类型,编译器能根据常量的值自动判断常量的类型并分配内存;对于整形常量,编译器在运行时跟踪它的值,并不对它分配内存。
const
adecimalnumber = 3.14;
i = 10;
errorstring = 'danger,danger,danger!';
注意 编译器根据如下规则来对常量分配内存:整型数被认为是最小的integer类型(10被认为是shortint,32000被认为是smallint等等);字符串值被认为是char类型或string类型(通过$h定义);浮点值被认为是extended数据类型,除非小数点位数小于4位(这种情况被当作comp类型);integer和char的集合类型被存储为它们自己。
当然,在声明常量是可以指定常量的类型,这样就能完全控制编译器对常量的处理。
const
adecimalnumber: double = 3.14;
i: integer = 10;
errorstring :string = 'danger,danger,danger!';
object pascal允许在const和var声明时用编译期间的函数,这些函数包括ord()、chr()、trunc()、rount()、high()、low()、和sizeof()。
type
a = array[1..2] of integer;
const
w: word = sizeof(byte);
var
i: integer = 8;
j: smallint = ord('a');
l: longint = trunc(3.14159);
x: shortint = round(2.71828);
b1: byte = high(a);
b2: byte = low(a);
c: char = chr(46);
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/