(delphi11最新学习资料) Object Pascal 学习笔记---第7章第2节(对象引用模型 )

7.2 对象引用模型

​ 在某些 OOP 语言(如 C++)中,声明一个类类型的变量就会创建该类的一个实例(与 Object Pascal 中的记录差不多)。本地对象的内存来自堆栈,并在函数结束时释放。不过,在大多数情况下,你必须明确地使用指针和引用,才能更灵活地管理对象的生命周期,这就增加了很多额外的复杂性。

​ Object Pascal 语言则基于对象引用模型,与 Java 或 C# 完全相同。其原理是,类类型的每个变量并不保存对象的实际值及其数据(例如,存储日、月和年)。相反,它只包含一个引用或指针,用来指示存储实际对象数据的内存位置。

注解: 在我看来,采用对象引用模型是编译器团队在语言早期做出的最佳设计决策之一,当时这种模型在编程语言中并不常见(事实上,那时还没有Java,也没有C#)。

​ 因此,在这些语言中,您需要显式创建一个对象并将其赋值给变量,因为对象不会自动初始化。换句话说,当你声明一个变量时,你并没有在内存中创建一个对象,你只是为对象的引用保留了内存位置。对象实例必须手动和显式地创建,至少对于你定义的类的对象是这样。(不过,在 Object Pascal 中,运行库会自动创建放置在窗体上的组件实例)。

​ 在 Object Pascal 中,要创建对象的实例,我们可以调用其特殊的 Create 方法,即类本身定义的构造函数或其他自定义构造函数。以下是代码:

ADay := TDate.Create;

​ 正如你所看到的,构造函数应用于类(类型),而不是对象(变量)。这是因为你要求类创建一个其类型的新实例,而结果是一个你通常会赋值给变量的新对象。

Create方法从何而来呢?它是 TObject 类的构造函数,所有其他类都继承自该构造函数(下一章将讨论该主题)。不过,在类中添加自定义构造函数是很常见的,我们将在本章后面的章节中看到。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值