Delphi开发人员指南 第一部份快速开发的基础 第2章 Object Pascal 语言(一)


======================================================
注:本文源代码点此下载
======================================================

这一章把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^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值