转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
DELPHI面向对象参考         ★★★★

DELPHI面向对象参考

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3698 更新时间:2009/4/23 18:26:21

DELPHI面向对象参考

陈奇 2005-07-21

一、类和对象

类是对象的类型,是创建对象的模板。一个类可以创建多个对象,而一个对象总是属于某个类。类具有内部的属性(状态)和行为(操作)。

对象是类的实例,具有区别于同类其他对象的属性集合。

对象的声明存放于堆栈,对象的引用存放于堆。

二、类的方法分类

1、  普通方法

不加任何修饰的方法为普通方法。普通方法必须调用类的实例进行访问。即必须

建类的对象,调用方式为:对象.方法,声明方式为:

procedure[function] 方法名(参数表)[:返回值];

2、  构造方法

构造方法用于创建类的实例,调用后返回类的句柄。构造方法可以有多个版本。声明方式是:

          constructor 构造方法名(参数表);

3、  析构方法

析构方法用于销毁类的实例,一般不建议直接调用析构方法,而采用调用对象.Free的方式进行对象释放。声明方式为:

destructor 析构方法名(参数表);

4、  类方法

类方法属于一个类,在运行时即存在于内存中。可使用类.方法的方式进行调用,即不需要创建类的实例。声明方式是在普通方法前加class

class procedure[function] 方法名(参数表)[:返回值];

5、  消息处理方法

消息处理方法和一个唯一的消息ID进行关联,用于响应动态分派的消息。声明方式:

procedure 方法名(消息变元);message 消息ID;

三、多态、继承、重载

1、  静态方法

静态方法由对象的类决定。属于“早期联编”,即在编译阶段就决定了方法的实现版本。一个类的实例可创建为其他类的实例,但是调用到同名方法时,使用的方法是声明该实例的类的静态方法,声明方式:

procedure[function] 方法名(参数表)[:返回值];

2、  虚拟方法

虚拟方法可实现“后期联编”,即在程序运行时可动态调用不同的方法版本,实现多态。所有类的虚拟方法在内存中建立了一张VMT(虚拟方法表),在调用时动态定位方法函数的位置。比动态方法多占用内存空间,但是速度较快。声明方式:

procedure[function] 方法名(参数表)[:返回值];virtual;

3、  动态方法

虚拟方法可实现“后期联编”,即在程序运行时可动态调用不同的方法版本,实现多态。本类的动态方法在内存中建立了一个DMT(动态方法表),在调用时根据动态方法唯一的编号定位方法地址。比虚拟方法少占用内存,但是速度较慢(因为可能用到祖先类的动态方法)。声明方式:

procedure[function] 方法名(参数表)[:返回值];dynamic;

4、  抽象方法

抽象方法不提供方法的实现脚本。只提供一个方法的签名(方法名称、参数表、返回值)。一般在高级别类中使用抽象方法。派生类对抽象方法进行覆盖、重载实现抽象方法脚本。使用抽象方法,必须创建实现了抽象方法的类(一般为派生类)才可使用。因为抽象方法也属于“后期联编”,因此必须和虚拟方法、动态方法结合,声明方式:

procedure[function] 方法名(参数表)[:返回值];virtual;abstract;

procedure[function] 方法名(参数表)[:返回值];dynamic; abstract;

抽象方法提供了一种从高层次视图观察对象的方式

5、  方法覆盖

在父类中生命的静态方法、虚拟方法、动态方法,都可在派生类中进行同名签名登记。这将覆盖父类的这些方法。提供更特殊的功能,声明方式:

procedure[function] 方法名(参数表)[:返回值];override;

方法的覆盖提供了对类的多态性

6、  方法重载

在父类中生命的静态方法、虚拟方法、动态方法,都可在派生类中进行同名签名登记,但是需要不同的参数表。这将重载父类的这些方法。提供更特殊的功能,声明方式:

procedure[function] 方法名(参数表)[:返回值];overload;

方法的重载提供了对类的扩充性

四、reintroduceselfisas

1、  r

[1] [2] [3] [4] [5]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台