学习Delphi面向对象编程的一点心得

以前我是完全不理解类的概念的,我只是把它当成一个Record来看,只不过它里面可以包含函数和过程罢了。但深入VCL学习后我才发现,原来面向对象的世界是这么精彩。

 

大家都应该见过闹钟吧?随便给一个人一个闹钟,他都会用,不管是电子钟还是机械钟。但如果给一个人一堆零件,有谁能够将他们组装成一个闹钟呢?如果没有专业的知识,恐怕没有人会。为什么呢?为什么人人都会用但很少人懂得其内部结构呢?因为闹钟这一类事物提供一个标准的操作接口,如发条、钟表盘等。不管是液晶屏还是钟表盘,虽然他们形式不同,但他们都是用来显示时间的;同时,闹钟有隐藏了其内部实现的细节,用一层外壳将他们“封装”起来,使外界无法接触其内部,保持了内部的稳定性以及保证了机械运作的安全。这,便是类在生活中的一个真实缩影。

 

类有三个特性:封装,继承,多态。

  1. “封装”就是隐藏内部实现细节。就像一个人,有为人知的一面,像外表,性格,衣着等;也有不为人知的一面,如其的心理状态以及复杂的内心世界及想法。在面向对象中,为人知的一面称为“接口”,即public段和published段的成员;不为人知的一面称为“私有成员”,即private和protected段(其实protected段也不完全是)。人们可以通过接口获得一些数据或完成一些操作,但不会影响类自己的数据的安全性、合法性和稳定性(当然,要保证类封装的合法性和合理性,像一辆只剩下骨架的汽车,连发动机都露出来了,有人敢去开吗?能保证发动机运行的稳定吗?)。
  2. “继承”就是“子承父业”。一个类可以继承另一个类的所有成员(不包括private段),并在其基础上增加属于自己的成员。这样做的好处是提高代码的可重用性。就像金属和铝的关系一样,铝是一种金属并且拥有金属的一切性质。
  3. “多态”就是“多种状态”,即一个method,可以在本类中实现(static),也可以实现一部分,另一部分让子类去实现(dynamic或virtual),还可以不实现,让子类自己去发挥(abstract)。这极大地提升了类的灵活性,同时也真实地反应了现实生活:一个人不是万能的,他不能干所有的事,但或许他的后代可以,即“青出于蓝而胜于蓝”。

类似乎是生活中的一个真实写照,世界上任何一个物体都满足这三个特性,无论是抽象的(如水果)还是具体的(如苹果)。这不仅仅是一种编程思想,还是对生活的一种总结,对生命的一种感悟,对世界的一种新认识。

 

程序基于数,而数皆万物也。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
面向对象开发实践之路——Delphi》光盘说明-、光盘用途 本光盘为《面向对象开发实践之路——Delphi》一书的配套光盘,供读者阅读图书时参考和学习。二、光盘内容 光盘包含了本书所有例子的源代码、博文视点宣传页、博文视点简介以及读者调查表电子文档。 本书例子源代码按章节存放,共计15个章节。光盘目录结构如下:光盘根目录│├─读者调查表.doc // 是本书末尾所附读者调查表的电子文件。│ // 欢迎您填写好读者调查表电子文档并发送到[email protected],│ // 博文视点热切期待您的反馈信息!├─README.txt├─点击博文视点.doc├─博文视点图书宣传页.doc├─Chap03 // 第3章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap04           // 第4章源代码│ ├─Checkout│ ├─Model│ ├─ModelSupport│ ├─test          // 单元测试代码  │ │ └─ModelSupport│ └─Test1          // 单元测试代码│ └─ModelSupport├─Chap05           // 第5章源代码│ ├─ModelSupport│ └─test          // 单元测试代码 │ └─ModelSupport├─Chap06           // 第6章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap07           // 第7章源代码│ └─ModelSupport├─Chap08           // 第8章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap09           // 第9章源代码│ ├─ModelSupport│ └─Test // 单元测试代码│ └─ModelSupport├─Chap10           // 第10章源代码│ ├─lbPFMCandidate│ │ └─ModelSupport│ ├─Output│ ├─pkPFMCandidate│ ├─pkPFMConfigurations│ ├─pkPFMExceptions│ │ └─ModelSupport│ ├─pkPFMFinders│ │ └─Test1│ ├─pkPFMHandlers│ ├─pkPFMKernels│ └─Test // 单元测试代码│ └─ModelSupport├─Chap11            // 第11章源代码│ ├─Configs│ ├─Handlers│ └─ModelSupport├─Chap12            // 第12章源代码│ ├─Configs│ ├─ModelSupport│ └─New │ ├─Configs│ └─ModelSupport└─Chap13            // 第13章源代码 ├─bin │ └─Debug ├─Model └─ModelSupport三、运行环境 本书的所有源代码均在Windows xp/2000/2003 + Delphi 2005 +DUnit下调试通过。 所有程序为Delphi 2005编写,因此建议您能够配置如下运行环境:  操作系统  Windows XP/2000/2003 软件    Delphi 2005+DUnit 四、使用方法 .dpr 的文件 请用Delphi 2005打开项目 .xml 的文件 请用任何文本编辑器打开 .exe 的文件 请自行安装使用五、防病毒 本光盘所有文件都已经过Norton Antivirus扫描,未发现有任何已知病毒。六、风险 读者须对使用光盘所附代码、文件所造成的一切后果负责。 七、如果对代码有任何疑问、建议或者发现有遗漏、错误之处请与http://liwei.csdn.net, [email protected]联系。八、所有源代码可以在学习和工作中直接使用,但请不要用于商业目的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值