Delphi面向对象编程思想读书笔记3——理解对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Delphi面向对象编程思想读书笔记3——理解对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2067字,纯文字阅读大概需要3分钟。
内容图文
对象的本质
- 计算机内存常用的有两块,栈(stack)和堆(heap)。
- 对象的引用存储在栈中,栈中的变量是不需要由程序员手动去释放内存空间的。简单数据类型的值和对象的引用存储在栈中,对象存储在堆中。
- 查看创建对象所占用内存的大小,调用InstanceSize()方法,从TObject继承。
- 对象引用和类引用。对象是类的动态实例,对象总是被动态分配到堆上,一个对象引用就如同一个句柄或者一个指针。一个对象引用通常以一个变量的形式存在,也有函数或者属性返回值的形式。类引用类型是类的模板。类引用最普遍的使用是通过调用构造函数来生成该类的实例,也可以用引用类测试对象类型(is)或者将对象转换为特定类型(as)。
- 常用的参数床底机制分为值传递和引用传递(var)。
- 赋值操作符(:=)将一个对象的以用赋值给一个对象变量。Assign和AssignTo方法可以将对象属性进行赋值。
-
简单的数据类型(如Integer,Char,Record等)无论作为参数还是变量都是按值传递和使用的,通常称为值类型。对象变量是引用类型变量,分配一个对象引用给一个变量时,Delphi仅复制引用,而不是整个对象。
对象的生死
- Delphi用Constructor声明一个构造函数Create,可在对象产生的时候调用。用Destructor声明一个析构函数Destroy,将在对象销毁的时候调用。
- Destroy直接销毁对象,Free会检查对象是否存在,如对象存在,或者对象不为空,调用Destroy。FreeAndNil调用Free后将对象置为空。
- 构造时应该从基类开始按继承的层次孙旭调用,析构的时候顺序正好相反。
- 属主(owner)机制。属主(owner)机制就是设计模式中典型的结构型模式COMPOSITE(组合),Application向其所拥有的对象发送析构的消息的方式,典型的行为模式Observer(观察者)。
- 示例程序3-10 没明白的地方
constructor TControlFactory.create(Aowner: TWinControl; ControlClass: TControlClass); begin FControlObj := ControlClass.Create(Aowner); FControlObj.Parent := Aowner; FControlObj.Name := FControlObj.ClassName; FControlObj.SetBounds(10,10,250,150); self := TControlFactory(FControlObj); //这句话不明白 end;
- 创建有属主的组件不需要手工销毁,创建组件时指定属主在效率上不划算。
- 对象的关系
(1)泛化关系:表现类(对象)的父子继承特性。
(2)聚合和组合关系:表现类(对象)的部分和整体的合成特性。
(3)依赖和合作关系:表现类(对象)的互作用特性。 - 原始数据(简单的数据类型)和对象(类类型)的区别。原始数据可以看作一个只有单一属性并且不具有方法的简单对象。
内容总结
以上是互联网集市为您收集整理的Delphi面向对象编程思想读书笔记3——理解对象全部内容,希望文章能够帮你解决Delphi面向对象编程思想读书笔记3——理解对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。