最近在学习DELPHI的OOP 虽然大概看明白了一些 看了一些以后 感觉OOP中的内部实现 还是通过大量的函数和过程内部还是纯粹的过程化的代码 不过是按照现实的实体又重新组织了一下把程序设计的思路又增加了一个面 (呵呵,不知道这个是不是精华了)主要偶没有实际应用过OOP的方法来做一些东西 只是写了几个书上的例子可是要真正写一些实际的东西感觉还是特别困难因此不能理解OOP的精华所在 想请有过实际应用经验的高手们指点一下最好能有个小小的例子 高分送上 不够再加 呵呵
解决方案 »
- IE 中的编码菜单
- 用API操作注册表的问题!!
- 怎样用delphi远程调用使用burlap框架实现的WebService,顶者有分。
- 如何将JPG图像转换为bmp文件,并指定图像大小?????
- 散分,十位一结,11以后没分。需要分的同志来哪,10分左右一贴,不犯法吧?2
- 到何处下载一些delphi的秘笈,葵花宝典之类的帮组文档??
- 例行散分
- 为啥我的文件只能有32K大,谢谢
- treeview问题
- 请各位delphi爱好者介绍一下好的网站,(市面上常见的就不用说了)
- 时间段查询,时间格式问题~
- GetDeviceCaps(printer.Handle,PHYSICALWIDTH)和GetDeviceCaps(printer.Handle,horzres)取到的值为什么不同
我就不多说了。
李维的 面向对象开发实践 都不错
继承就不说了,封装好比MM找你修电脑,每次电脑坏了MM就调用你来修电脑。怎么修是你的事,MM只知道一旦找到你,电脑就能修好,她不用学维修电脑。
如果你试图让MM参与修电脑,那就是封装不好,以后MM会因为参与修电脑而把电脑修坏了,这就是BUG的来源以及维护困难。
二者只是看问题的角度和方式不一样,有点像向左走向右走
本身不存在谁比谁范围大、谁实现谁的问题
至于我们现在OO中看到函数,
那是因为OO的概念出来的要比面向过程晚,
大多数语言在实现的时候就利用了函数这些现成的东西,而没有去新发明一些词
OO中的函数/过程和面向过程中的函数/过程已经不是一个层面的东西了学习OO的时候,最好把面向过程暂时放在一边,不要动不动拿来比较,这样很容易混淆个人认为Java、C#相比C++、Delphi更适合初学者学习OO,
在OO这一层面上来说,Java、C#要更“纯粹”一点
////////////////////////////////////全错了,从你第一句"OOP中的内部实现 还是通过大量的函数和过程"开始就错了
对象是对象,函数也是对象,OO里面只有对象和对象的交互,没有函数和过程
说的是不是有点玄乎,但愿没把你搞晕:)“内部还是纯粹的过程化的代码 不过是按照现实的实体又重新组织了一下”
之所以有顺序执行的东西,只是由于CPU执行指令的时候,是按照顺序执行的,
顺序执行=\=过程化由面向过程开始学编程的人,
在接触OO的时候,总是会自觉不自觉的拿OO和面向过程作比较,
比来比去会发现,除了把人搞晕以外,不会给人带来其他好处,
对于初学者而言,最好彻底忘掉面向过程那些东西lZ应该要有这样的认识:
OO和面向过程是两个不同的东西,对于初学者而言,二者没有可比性,
把它们放在一起比较的做法,本身就是错误的,由此比较出来的结果,自然也是错误的。
(上面的话是对LZ这样的初学者而言的,其他人不要拿板砖拍我)
它的目的是为了不让人看见内部的实现机制,
对于初学者而言,一些本质性的东西,也应该“封装”
有的时候,知道太多了反而容易使人沉迷于细节,
就像已经有了API,人们还要搞出来一个Java和.Net一样,
既然是在OO,那就干脆从头到尾都OO人的精力是有限的,特别是初学者,面对一大堆要学习的东西
如果凡事都从原理讲起,那他们可能穷其一生都未必能够全部了解,
还不如只告诉他们现成的、“封装”过的东西
正因为是初学者,才应该从基础学起,下面的东西都不懂,会Java没用,会.NET也没用,因为这个“会”是非常粗浅的。
如果认为原理原来太多,那说明是将非原理的东西也当作了原理,说明老师本身都不懂原理和它的层次。真正的原理,本身是很朴素的,不要神话。
现在恰恰是很多人一开始就钻在一些表象的东西里面,所以摸索了很长时间也不得要领,不能有质的提升。
没用OO的思维方式看待问题,分析问题
宽泛点说,如果你用到了object,那你就是在OOP
要是严格说,如果你看待一件事情,首先想到的是流程,
那即使你是在写object,也算不得OOP