您的位置:首页 > 编程语言 > Delphi

[网上绝少的贴子哟]Delphi入门强贴02-Delphi的语法概括讲解

2007-09-09 15:34 435 查看

[网上绝少的贴子哟]Delphi入门强贴02-Delphi的语法概括讲解

1995年Borland公司发布了Delphi ,使Pascal结构化语言成为一种可视化编程语言。但是你要清楚的是DelPhi只是可视化编译环境,是一个开发工具而已,不是语言哦!DelPhi用的是语言在pascal语言基础上改进,一种面向对象语言object pascal。
什么是面向对象程序设计呢!! 面向对象的程序设计(Object Oriented Programming,简记为OOP)OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。
好了废话不多了,我来说点object pascal的语法吧!!
object pascal语言是由多种语法单元构成的,包括常量、变量、类型名、过程、函数、单元、程序、库和包等。标识符就是这些语法单元的总称。
object pascal中定义了的标识符,必须以字母或下划线(_)开始,不能包含空格;
其他的可以是字母、数字、下划线。标识符可以是任意长度,但是只255个字符有效。object pascal 标识符不区分大小字。不能使用保留字做标识符(保留字是编译器定义好的)。
变量是一种能在程序运行期间,改变其内容的标识符。它表示内存位置,用户可以通过变量名读写内存地址。使用变量前必须先声明,用保留字var对其进行声明
Var I:interger; //声明一个整型变量
Var X: real; //声明一个实型变量
Var Z: char; //声明一个字符型变量 怎么写注释就不用我说了吧
变量声明采用var 保留字,在 :分隔符前的是变量名,后面是变量的类型,同时也可以声名多个变量
Var
A:integer;
B:real;
C:char;
(;)表示一个语句结束。
在过程和函数中声明的变量,被称为局部变量;而其他变量就称为全局变量。
过程和函数都是object pascal语言的两种子程序,都是为了完成某种特定的功能。他们都可以在程序运行过程中任意调用。它们的区别在于:函数在运行时,会提供一个返回值;
而过程不提供任何返回值。
下面来说说常量
常量是一种内容不能改变的标识符。采用保留字const
Const
Min=0;
Max=100; //声明常量不用:
Yun=’hello world’;
类型名
Object pascal分整型、实数型,字符型,布尔型,自定义类型。
最基本的是整型intger 实数型real 字符型char 布尔型用boolean
语句
赋值语句sum:=sum+100; //将sum+100赋值给sum
赋值运算符为 :=
选择语句
单分支条件语句的语法格式为:
if expession then statement 的意思如果条件符合expession就执行then的后面的语句
例如: if <>0 then result :=i
//expression(表达式)是逻辑表示式,statement(中文陈述的意思)是执行的语句内容
双分支条件语句语法格式为:
if expression then statement1 else statement2
意思是如果符合条件执行statement1 不符合执行statement2
if j=0 then
exit
else
result :=i/j ;
case语句case语句也叫做情况语句,它针对多种情况产生多条分支。case语句适用于被判断的变量或属性是整型、字符型、枚举型或子界型时。
在一个case语句中的各个独立的单元应以数字或字母顺序排列。每一个case单元的动作行为应保持简单而不应该超过4~5行代码。如果所要执行的动作过于复杂,应采用独立的过程或函数。
case语句中的else子句只有当需要系统默认行为或处理错误时才使用。
case语句格式如下:
case 表达式 of
情况标号表1:情况子句1;
情况标号表2:情况子句2;
M
情况标号表n:情况子句n;
end
重复性语句
repeat语句
repeat语句也称为直到语句。repeat语句的使用同while语句一样,并且遵循同样的规则。格式如下:
repeat
执行一段程序;
until 循环结束条件
下面的示例程序中,当语句被执行时,会循环输出1~10的数字。布尔表达式i=10(注意,与其他语言不同的是,“=”是关系运算符,而不能进行赋值操作)直到repeat...until程序段的结尾才会被计算,这意味着repeat语句至少会被执行一次。
i := 0;
repeat
i := i+1;
Writeln(i);
until i=10;
while语句
while语句也叫做当语句。当需要的条件满足时,即进行循环。
格式如下:
while 布尔表达式 do语句
while保留字后面必须跟一个布尔表达式。如果该表达式的结果为真,循环被执行;否则会退出循环,执行while语句后面的程序。
下面程序段的执行效果和上面的repeat程序段相同:
i := 0;
while i<10 do
begin
i := i+1;
writeln(i);
end;
在一个while循环中,建议不要使用exit语句来跳出循环,应尽量使用循环条件来跳出循环。
在一个while循环中所用的初始化代码应在进入while循环前出现,不要用其他不相关的语句把二者隔开。循环结束后的处理应在循环之后立即进行。
for语句
for语句也称循环语句,有两种格式。
格式1:
for 变量:=表达式1 to 表达式2 do 一段程序
格式2:
for 变量:=表达式1 downto 表达式2 do 一段程序
for语句的程序代码会执行一定的次数,它需要一个循环变量来控制循环次数,因此需要声明一个变量。它的类型可以是整数型、布尔型、字符型、枚举型或子界型。
下面的程序段会显示1~10的数字,其中i为控制变量。
var
i : integer;
for i := 1 to 10 do
writeln(i);
在循环次数已知的情况下,for语句能取代while语句。
过程与函数
如果一组语句能够完成某一功能,我们就把它定义为一个过程;如果要完成的功能是为了进行一系列处理之后返回一个值,那么就可以把它定义为一个函数。每一个过程或函数都以标题开始,其中包括过程或函数的名称和它使用的参数。过程以保留字procedure开始,函数以保留字function开始。
参数位于括号里面,多个参数之间以分号分隔,例如:
procedure SetDate(Year: Integer; Month: Integer; Day: Integer);
也可以将相同类型的参数组合在一起,则上述过程标题写成:
procedure SetDate(Year, Month, Day: Integer);
函数在标题中还多了一项——返回值的类型。下面是一个返回值为Double型的函数标题:
function GetAverage(num:integer;total

ouble)

ouble;

函数
定义函数的关键字是function。
函数有两类:一类是标准函数,这一类函数由Delphi定义并实现,程序员可以直接引用,应熟练掌握;另一类为自定义函数,要重点掌握它的声明和调用方法。一个自定义函数应首先在程序声明部分声明,之后才可以在程序的执行部分加以调用。
过程或函数的语句部分由begin开始、end结束。函数需要一个返回值。可以将返回值赋给函数名称,也可以将返回值赋给Result变量。
下面示例程序的作用是将返回值赋给函数名称:
function GetAverage(num:integer;total

ouble)

ouble;
begin
GetAverage := total / num;
end;
也可以将返回值赋给Result变量,则上面程序中位于begin和end之间的语句改为:
Result := total / num;
过程
定义过程的保留字是procedure。
过程也有两类:一类为Delphi定义的标准过程,另一类为自定义过程。
与函数不同,过程没有返回值。
参数与作用域
参数
过程和函数与外界的数据通信有两种方式:一种是通过全局量,另一种是通过参数。程序代码在调用一个过程或函数时,通常通过参数将数据传递到被调用的过程或函数中。最常用的参数有值参数、变量参数和常量参数3种。
· 值参数 若参数定义为值参数,则函数的调用对实参的值没有影响。
· 变量参数 若参数定义为变量参数,则函数调用的结果对实参的值有影响。
· 常量参数 如果参数定义为常量参数,则当过程或函数执行时不改变形参的值。
值参数与变量参数在定义上的区别在于:值参数在形式参数表中,只声明其数据类型;变量参数在形式参数表中需要以保留字var来声明。程序通过有无var来区别变量参数和值参数。常量参数利用const关键字来声明,在形式参数表的参数名称前加上保留字const可以使一个形参成为常量参数。
另外,由被调用过程或函数定义的参数称为形式参数,即形参;而由调用过程或函数引用的参数叫实际参数,即实参。例如,在函数定义和实现部分:GetAverage(num:integer; total

ouble)中,num就是形式参数,而当我们调用这个函数:av:=GetAverage(n,ttl)时,其中n和ttl都是已经定义的变量,它们都是实际参数。
值参数在运行过程中只改变其形参的值,不改变其实参的值,即参数的值不能传递到过程的外面。如果想改变传入的参数值,就需要使用变量参数,即在被调用程序的参数表中的形参前加上保留字var。当一个变量参数被传递时,任何对形参所作的改变会反映到实参中,这是因为两个参数指向同一个地址。
如果当过程或函数执行时要求不改变形参的值,则最保险的办法是使用常量参数。在形式参数表的参数名称前加上保留字const可以使一个形参成为常量参数。使用常量参数代替数值参数可以保护用户的参数,使用户在不想改变参数值时不会意外地将新的值赋给这个参数。
作用域
对于在程序中出现的变量,根据定义域的不同,拥有不同的作用域:
全局变量是在主程序中定义的变量。
局部变量是在过程或函数中定义的变量。
全局变量对于整个程序均适用,局部变量只对定义它的过程或函数有效。
Object Pascal语言对于变量的作用域有如下约定:
在不同层次可以定义使用同名变量,但在同一层中1个变量只能定义1次。
同名变量在不同层次被定义时,代表不同的对象。执行内层程序时,外层的非局部变量虽然存在,却已经被屏蔽;而当程序从内层退出后,内层的局部变量就已经不存在,只有外层的那个非局部变量仍然存在。
类与对象
从用户角度考虑,用户并不需要了解面向对象编程的知识,就可编写Delphi应用程序。当用户在建立新窗体、添加新组件以及处理事件时,大部分相关代码会由Delphi自动产生。但是,知道语言及其细节,对理解Delphi正在做什么并完全掌握它是很有帮助的。特别是有关类的概念及用法是后面学习组件编程以及Delphi深入编程的基础。
类和对象是两个常用的术语,然而经常容易混淆,因此须要区分它们的定义。

类与前面介绍的记录类似,也是包含有各种域的结构化数据类型,然而,类包含方法。方法就是操纵对象域数据的过程或函数。类类型把数据和方法封装在一起。
一个类是一个数据类型。类就像记录一样,是一种数据结构。按最简单的理解,可以将类理解成一个记录。但实际上,类是一种定义不确切的术语,它常用来定义抽象的事务,是构成应用程序的项目,其内涵远比记录要丰富。在本书中,类经常可以被理解为可视化组件,如按钮、标签、表等。
了解类,最关键的是掌握类的特性。一个类,其最突出的特征有3个:封装性、继承性、多态性。
(1)封装性
对类最基本的理解是,类把数据和代码组合在同一个结构中,这就是类的封装性。将类的数据域封闭在类的内部,使得外部程序必须使用正确的方法才能对要读写的数据域进行访问。封装性意味着数据和代码一起出现在同一结构中,只有用类的方法才能接触到内部的私有数据。
(2)继承性
继承性的含义直接而且显然,它是指把一个新的类定义成已存在类的后代。新类通过继承得到了旧类的一切东西。在往新类中添加任何新内容以前,父类的每一个属性和方法都已存在于子类中,父类是创建子类的基石。
(3)多态性
多态性是在类体系中把设想和实现分开的手段。如果说继承性是系统的布局手段,那么多态性就是实现其功能的方法。多态性意味着同样的动作可以由多种方式来实现,这取决于执行该动作的类。多态性允许以类似的方式处理类体系中类似的类。根据特定的任务,一个应用程序被分解成许多类,多态性把高级设计处理的设想,如新类的创建、类在屏幕上的显示、程序运行的其他抽象描述等,留给知道该如何处理它们的类去实现。
在Object Pascal中,声明类类型使用保留字Class。类类型可以指定一个祖先类型,表示该类型是从这个指定的祖先类型继承下来的,例如:
Type
TMyObject=Class(TObject)
上例声明了一个名叫TMyObject的类类型,该类型是从类TObject继承下来的。注意,类类型的标识符一般以“T”打头,以区别于其他数据类型。另外,在Delphi中,大量的构造数据类型都是以“T”打头的。如果不指明祖先类,Delphi默认该类继承自TObject类。
对象
对象是类的实例(instance),即由类定义的数据类型的变量。对象是实体,当程序运行时,对象占用一些内存。对象与类的关系就像变量与类型的关系。
例如,针对上文声明的类TMyObject,可以声明它的一个实例:
var
Aobject : TMyObject;
然后通过Aobject.属性或Aobject.方法就可以实现对这个对象的属性或方法的访问。
学好Delphi要从掌握传统的Pascal语言及理解面向对象的编程思想两方面入手

要注意程序的可读性,在程序中选择合适的缩排、大小写风格,并在需要时将程序代码分行

Object Pascal有多个预定义的数据类型,用户可以随意声明这些类型的变量

Object Pascal的语句分为两类:简单语句和构造语句

简单语句是指不包括其他语句的语句,构造语句由简单语句按照一定的规则构造而成

如果一组语句能够完成某一功能,那么就把它定义为一个过程;如果要完成的功能是为了进行一系列处理之后返回一个值,那么就可以把它定义为一个函数

面向对象的编程语言基于3个基本概念:类、继承及多态。类就像记录一样,是一种数据结构

单元是源程序代码的载体,带有.pas扩展名

Delphi提供了一系列组件,正是这些组件构成了Delphi面向对象程序设计的基础。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 Delphi 休闲