随笔分类 -  Pascal 编程

架构基础(Frameworks Fundamentals)
摘要:Windows编程很适合面向对象编程,通过建立封装通用Windows编程任务的类,一个程序员能编写出更多的产品。例如,当封装窗口不同任务的类建立以后,这个类就可以一遍一遍地应用,于是架构革命就开始了。 New Term:架构(framework)是一个类的集合,这些类可以通过封装常用编程技术简化Windows编程,架构也称为类库(class libraries),封装(Encapsulat... 阅读全文

posted @ 2012-01-07 22:36 pchmonster 阅读(2997) 评论(2) 推荐(4) 编辑

初探Object Pascal的类(十一)
摘要:类关键字:is和as Object Pascal有两个特定的用于类的操作符: is操作符 is操作符用来确定一个类是否具有一种特定的类型。再回到TAirplane和TMilitaryPlane类例子中,假设现有一个类的实例叫Plane,此类可能是TAirplane类的实例,也可能是TMilitaryPlane类的实例,或者也可能是一个完全不同的类型。在这种情况下,就可用is操作符来确定。例如... 阅读全文

posted @ 2011-12-30 23:47 pchmonster 阅读(989) 评论(0) 推荐(0) 编辑

初探Object Pascal的类(十)
摘要:覆盖方法 先来讨论下虚拟方法,还是以TAirplane为例,注意到TakeOff方法在TAirplane类中是虚拟方法(TakeOff方法的声明的结尾有virtual关键字),TakeOff方法由SendMessage调用,并响应MsgTakeOff消息,如果它的派生类TMilitaryPlane类没有提供自己的TakeOff方法,基类TAirplane的TakeOff方法就会被调用。由于TMi... 阅读全文

posted @ 2011-12-30 23:21 pchmonster 阅读(1694) 评论(0) 推荐(1) 编辑

初探Object Pascal的类(九)
摘要:继承(Inheritance) 在Object Pascal中,类的最强大功能之一就是可以通过继承得到扩展。 继承(Inheritance)是指取一个现有的类,通过由它派生新类来增加功能。 开始取得类称为基类(base class)或者祖先类(ancestor class),新建立的类称为派生类(derived class)。 为了说明这些概念,我们再次回到TAirplane类。众所周知,... 阅读全文

posted @ 2011-12-30 14:00 pchmonster 阅读(938) 评论(0) 推荐(0) 编辑

初探Object Pascal的类(八)
摘要:类实例 讲解了这么多讲了,在此举例一个类的例子是最好不过的了。下面的单元中,包含了一个名叫TAirplane的类,这个类可用于飞机控制器程序。这个类可通过发送有关信息来操作飞机,它可指示飞机起飞、降落,或者改变航程、高度、速度等。先来看看这个单元吧。 清单 Airplane.pas unit Airplane;interfaceuses SysUtils;const { 飞机类型} A... 阅读全文

posted @ 2011-12-30 13:23 pchmonster 阅读(1677) 评论(2) 推荐(2) 编辑

初探Object Pascal的类(七)
摘要:关于Self 所有的类都有一个隐含的字段叫Self,在内存中Self是一个指向类实例的指针。 首先我们来看看,如果Self不是隐含字段的话,那么TMyRec类到底是一个什么样子: TMyRect = class private Self: TMyRect; { Self隐含字段} Left: Integer; Top: Integer; Right: Integ... 阅读全文

posted @ 2011-12-30 02:15 pchmonster 阅读(865) 评论(0) 推荐(1) 编辑

初探Object Pascal的类(六)
摘要:方法 方法是属于类的函数和过程,它们相对于类是局部的,并且在类的外部是不存的。只有在类的内部或者通过类的实例才能调用方法,方法能存取所有的公用的、保护的和私有的字段。方法可在private、protected或者public段中声明,要设计一个比较好的类,应该考虑哪些方法应该放在类中。 公用方法(Public method)和属性(property)代表着用户与类的接口。通过公用方法,类的使用... 阅读全文

posted @ 2011-12-30 02:10 pchmonster 阅读(725) 评论(0) 推荐(0) 编辑

初探Object Pascal的类(五)
摘要:字段 简而言之,类的字段是在类的声明中加以声明的变量,它们可以看作是具有类作用域的变量,除了类字段的存取级别可以声明为私有(private)、公用(public)或保护(protected)并加以控制外,类的字段本质与记录类型的字段是一样的。私有和保护字段对于类来说是私有的,在类的外部是看不见的;然而对于公用字段,只需要一个对象,在类的外部就可以存取。 以前面的TMyRect类为例,它没有公用... 阅读全文

posted @ 2011-12-30 02:07 pchmonster 阅读(729) 评论(0) 推荐(0) 编辑

初探Object Pascal的类(四)
摘要:类的析构函数 析构函数也是一种特殊的方法,此方法在对象消失前会被自动调用。 析构函数可以看成是构造函数的对立面,它通常用来释放类所占的内存,或者做一些清除工作。一个类不一定必须要有一个析构函数,因为基本的类析构函数可以代替。像构造函数一样,析构函数也没有返回值。 尽管类可以有多重析构函数,但它不具有一般性,若只有一个析构程序,就应该把它命名为Destroy,这不只是一个习惯。当要释放类的实例... 阅读全文

posted @ 2011-12-30 02:04 pchmonster 阅读(993) 评论(1) 推荐(0) 编辑

初探Object Pascal的类(三)
摘要:类的构造函数 Object Pascal中的类有一种特殊的方法叫构造函数。 构造函数是一种用来建立实例类的方法。 构造函数用来初始化任何类成员变量,为类分配所必须的内存,或者做任何其他初始化工作。 在上一讲中定义的TVehicle就没有构造函数,若不提供一个构造函数,当建立类时,就会用隐藏的类构造程序(Object Pascal所有类都是从TObject 派生,TObject类有一个构造函... 阅读全文

posted @ 2011-12-30 01:57 pchmonster 阅读(1366) 评论(1) 推荐(0) 编辑

初探Object Pascal的类(二)
摘要:类的存取级(可见性) 类有五个存取级(可见性): 私有的(Private) 公有的(Public) 保护的(Protected) 公布的(Published) 自动的(Automated) 作为一个程序员,不仅要创建类而且要使用类。在团队编程中,一些程序员是类的创建者,而另一些程序员是类的使用者。要理解类存取级在类操作中的所担当的角色,首先必须理解怎... 阅读全文

posted @ 2011-12-30 01:43 pchmonster 阅读(1952) 评论(1) 推荐(4) 编辑

初探Object Pascal的类(一)
摘要:类是什么? 类(class)是字段和方法(函数和过程)的集合,并把这些字段和方法集中在一起完成一项特定的编程任务,在这种情况下,类也称为封装任务。 类具有以下性能: 控制存取的能力、构造程序(constructor)、析构程序(destructor)、字段(field)、方法(函数和过程)、隐含的特殊指针Self 在进一步讲解这些性能之前,我们先看看一个例子怎么使用一个类,以典型的Wind... 阅读全文

posted @ 2011-12-28 15:09 pchmonster 阅读(1496) 评论(1) 推荐(2) 编辑

指针(Pointer)
摘要:指针是存放指定类型(或未定义类型)变量内存地址的变量,因此指针间接引用一个值。 指针可以分为两大类:无类型指针(Untyped Pointer)和有类型指针(Typed Pointer)。 直接用Pointer声明的变量就是无类型指针,可以在使用时指向任何数据类型。有类型指针所能指向的数据是固定类型的,至少必须是兼容的,比如PInteger不能指向一个字符串,但可以指向一个Byte或者Word... 阅读全文

posted @ 2011-12-28 13:31 pchmonster 阅读(4476) 评论(6) 推荐(4) 编辑

强制类型转换(Casting)
摘要:强制类型转换(Cast)是指编译器把另一种不同类型的数据当成某一种数据类型处理。也叫类型强制转换(type cast)。 编译器在调用一个函数时对形参和实参的类型匹配的检查是严格的。因此为了能通过编译检查,经常需要把一个变量的类型转换为另一个变量的类型。 例如下面的例子中,将Char转化为Integer和Byte类型: program Project1;{$APPTYPE CONSOLE}u... 阅读全文

posted @ 2011-12-28 10:32 pchmonster 阅读(2703) 评论(0) 推荐(0) 编辑

Object Pascal数据类型全家福
摘要:根据Delphi在线帮助,绘制了如下的全家福,所有数据类型都按照各自的辈分站好了位置。 1、Ordinal有序类型 Object Pascal将Ordinal和Real归类于Simple(简单)旗下。 Integer基本类型是Integer和Cardinal,它们都是32位的,操作系统和CPU可以花费最少的时间处理它们。 Character基本类型是Char,AnsiChar和Char... 阅读全文

posted @ 2011-12-27 13:28 pchmonster 阅读(2617) 评论(2) 推荐(1) 编辑

集合(Sets)
摘要:集合是Pascal特有的一种数据类型。集合用一种有效的手段来表示一组有序数、字符和枚举值,它们包含的值没有内在的顺序,且一个值在集合中包含两次并没有实际意义。 一个集合类型的取值范围,是构成它的有序类型(称为基础类型)的幂,也就是说,集合可能的值是基础类型的所有子集,也包含空集。基础类型可能的值不要超过256 个,并且它们的序数必须在 0 到255之间。任何像下面的形式: set of ... 阅读全文

posted @ 2011-12-27 10:45 pchmonster 阅读(1321) 评论(0) 推荐(0) 编辑

子界类型(Subrange types)
摘要:子界类型(Subrange types)定义了某种有序类型的一个子集,子界的有序值必须是在别的有序类型中已经定义过的。子界中有序值的索引被基类确定。 它的形式为Low..High。这里Low和High是同一个有序类型的常量表达式,并且Low比High要小。 定义一个子界类型变量,那么赋给该变量的值必须是子界定义范围内的值。 还是举个详细的例子来说明吧。 1、新建一个Console Appl... 阅读全文

posted @ 2011-12-24 20:52 pchmonster 阅读(3458) 评论(0) 推荐(0) 编辑

浅析枚举类型(Enumerated types)
摘要:枚举类型定义了一系列有序值的集合。枚举变量就是从这个既定的集合中取某个值。集合中的有序值可以称为元素,元素一般从0开始索引(也就是元素的顺序号)。 定义一个枚举类型,采用以下的格式: type typeName = (val1, ..., valn) 其中 typeName和每一个val都必须是有效的标识符。 VCL中有很多地方用到了枚举类型,比如Object Inspector中Form... 阅读全文

posted @ 2011-12-23 23:08 pchmonster 阅读(2629) 评论(4) 推荐(0) 编辑

函数的缺省参数
摘要:函数或过程可以有缺省参数(default parameters),正如其名称一样,如果函数或过程在调用时没有指定参数,它就会为函数提供一个缺省值。 为了声明一个有缺省值的过程或函数,在参数类型后跟一个等号和缺省值。 下面照惯例,举一个比较完整的例子,来实现一个加法的程序,默认是两个数相加,但是也能实现三个数相加的功能。 1、新建一个Console Application。 2、在代码中输入... 阅读全文

posted @ 2011-12-23 21:51 pchmonster 阅读(7722) 评论(4) 推荐(1) 编辑

方法重载(Overloading procedures and functions)
摘要:从Delphi4开始,Object Pascal可以使用具有相同函数名但又有不同参数的函数。 共享公用名称的方法就称重载方法。 我们共同来完成一个范例,我们要实现两个数的乘积,这两个数有可能是Integer、Double、Word类型,而我们只需要一个Multiply函数来实现。 1、新建一个Application。 2、在Form1上放置一个Memo组件(Memo1)和Button组件(... 阅读全文

posted @ 2011-12-23 20:21 pchmonster 阅读(1257) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示