Delphi 面向对象编程 第三章

Delphi面向对象编程 第三章

使用对象类别(类)或对象类型(抽象类对象接口)来描述客观世界。因为类或者类类型可以抽象出一半规律和本质特征,可以根据客观世界的复杂性进一步继承生成新类,还可以适应客观世界的变化性来实现多态。

对象的本质:

可视为一组相关代码和数据的组合。其中过程称为方法,数据称为属性。

可视为变量。它是‘类’类型的变量, 有自己的属性,可存储数据,它有行为,可执行自身的具备的操作。

可视为元数据。它封装了方法和属性,并对外提供调用接口。

可相互协作,共同完成任务。通过消息发送请求,在消息请求中可以调用方法和设置属性。

继承,组合和封装等可以构建新的对象。

一个非可视化的对象是一个不包括可视化控件和接口的对象。系统逻辑对象处理客户前端和数据后端的通信。它们提供了一个抽象的中间层,可以变更客户前端和数据后端,但系统逻辑保持不变。

系统逻辑对象提供这些服务:客户机需要服务时,对应的系统对象就会相应,当客户机需要与数据连接时,连接系统对象就会建立和提供这种连接。

值类型:简单数据类型(如integerchar等)无论是作为参数还是作为变量,都是按值传递和使用。

引用类型,它存储的是间接数据,即对该类型的引用,如class

前者传递的是值的副本,后者则是引用的副本。

对象引用和类引用:

对象是类的动态实例,对象总是被动态分配的到堆上。即对一个对象的引用如同一个句柄或指针。

类引用类型 :类的类,或称为元类,构造形式 为 class of typetype可为任何类型。类引用类型声明不能直接用于变量或参数声明中那个。可以把nil赋值给任何类引用变量。常常用于创建一个对象 或者用来测试一个对象引用类型。

对象的克隆:TPersistent 类系下的对象都是可以提供克隆行为的。TPersistent是抽象类,没有实例对象,但其提供了一个接口,引入对象的可赋值性。

对象的赋值:使用:=将一个对象的引用赋值给另一个对象的变量;或使用assignassign to 将对象属性复制,得到两个状态一样的对象。如要克隆,需要第二种操作。

对象的生命周期:创建,运行,销毁。对象生成的方式 获取类实体的大小,分配空间,初始化,调用构造函数。

Delphi 控制对象生成 过程的主要方法是TObject.InstanceSize, TObject.NewInstance,TObject.InitInstance.

两者方法确定目标对象来自哪里:完成初始化工作的源对象;以参数形式接收对象的传递。存在方式:存储在变量中,存储在类成员中。

对象的关系

面向对象的分析和设计:如何识别和抽象对象,如何规定对象的粒度和边界,如何建立对象的交互机制。

一个对象对另一个对象可以做三件事:发送消息给另一个对象;从另一个对象中获取消息;将对象传递给一些其他对象。

发送消息和调用方法是等价有效的概念。这意味着对象之间的交互作用有四种:数据的发送,数据的接收,出发作用,消息传递给其他对象。

对象的继承是一种在保持对象的差异的同时共享对象相似性的复用。

对象的合成是一种直观复用对象的方法,即新的对象是由已有的对象组合而成。其分为聚合关系和组合关系。聚合是描述整体/部分的关联和链接。聚合关系体现‘具有’关系。聚合关系是可以传递的。组合则是具有强所有权和一致生存时间约束的聚合,称为组合聚合,体现为‘包含’关系。组合关系指定组合体或聚合体拥有他们的组成部分,组成部分只能有一个属主。

依赖关系:表示一个对象需要使用另一个对象,它依赖另一个对象的定义,被依赖的对象是为依赖对象存活的。

合作关系:一个对象的存活不依赖另一个对象,两个对象之间存在平等的合作关系。

依赖和合作关系中的对象是以局部变量和方法参数的形式存在的,而组合关系和聚合关系中的变量是以数据成员或属性的形式存在的。

转载于:https://my.oschina.net/suda/blog/76071

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值