最近在学习DELPHI的OOP 虽然大概看明白了一些 看了一些以后 感觉OOP中的内部实现 还是通过大量的函数和过程内部还是纯粹的过程化的代码 不过是按照现实的实体又重新组织了一下把程序设计的思路又增加了一个面 (呵呵,不知道这个是不是精华了)主要偶没有实际应用过OOP的方法来做一些东西 只是写了几个书上的例子可是要真正写一些实际的东西感觉还是特别困难因此不能理解OOP的精华所在 想请有过实际应用经验的高手们指点一下最好能有个小小的例子 高分送上 不够再加 呵呵

解决方案 »

  1.   

    对OOP 有一定了解后,请看:《设计模式精解》 -> 《Delphi设计模式》-> 《敏捷软件开发》
    我就不多说了。
      

  2.   

    delphi 高手突破 最后几章,
    李维的 面向对象开发实践 都不错
      

  3.   

    再看Delphi设计模式,就可以体验到OOP的精华了...
      

  4.   

    OOP本身就在你的生活中呀,不要想的太神秘 hehe^^面向对像做程序只是更自然的把一类处理方式与相关数据结构和数据更加科学的组织在了一起,更容易维护与扩展(比如继承),程序架构更加自然的进行表达,做OOP程序,要从更务业与更自然的方面与想设计与问题不要再钻在函数中去了,再提高一个档次吧 hehe^^
      

  5.   

    我想把以前写的一个程序重新按照OOP的思路重新写一遍是一个数据库操作的程序 有3张表 在3张表上分别都有增加 删除 修改 查询等操作我想写一个类 中包含这4个过程 当对每个表进行操作的时候 继承类 并覆盖其中的成员函数然后使用此对象进行增加 删除 修改 查询等操作呵呵 不知道我这样弄是不是OOP啊 感觉好像和写函数差不多啊请大家帮帮忙看看对不对啊
      

  6.   

    能掌握封装和继承就差不多了,其他的可以慢慢学。
    继承就不说了,封装好比MM找你修电脑,每次电脑坏了MM就调用你来修电脑。怎么修是你的事,MM只知道一旦找到你,电脑就能修好,她不用学维修电脑。
    如果你试图让MM参与修电脑,那就是封装不好,以后MM会因为参与修电脑而把电脑修坏了,这就是BUG的来源以及维护困难。
      

  7.   

    用面向对象编程不能使写程序变得容易,但可以使维护变得容易。如果你可以保证以后不维护,而且写好之后不会有BUG,不考虑代码重用,那么可以用面向过程来写。
      

  8.   

    OO是一种分析事物的方法,面向过程也是一种分析事物的方法
    二者只是看问题的角度和方式不一样,有点像向左走向右走
    本身不存在谁比谁范围大、谁实现谁的问题
    至于我们现在OO中看到函数,
    那是因为OO的概念出来的要比面向过程晚,
    大多数语言在实现的时候就利用了函数这些现成的东西,而没有去新发明一些词
    OO中的函数/过程和面向过程中的函数/过程已经不是一个层面的东西了学习OO的时候,最好把面向过程暂时放在一边,不要动不动拿来比较,这样很容易混淆个人认为Java、C#相比C++、Delphi更适合初学者学习OO,
    在OO这一层面上来说,Java、C#要更“纯粹”一点
      

  9.   

    LZ不妨以“万事万物皆对象”的观念来看待OO里面的函数、过程
      

  10.   

    OO就是精简再精简,方便再方便,易用在易用。让你懒去做很多事情的方法。只要你够懒,你就会明白OO是个什么东西。懒,很重要。
      

  11.   

    现在最想知道上面偶的那个应用的想法是否合理啊
    ////////////////////////////////////全错了,从你第一句"OOP中的内部实现 还是通过大量的函数和过程"开始就错了
    对象是对象,函数也是对象,OO里面只有对象和对象的交互,没有函数和过程
    说的是不是有点玄乎,但愿没把你搞晕:)“内部还是纯粹的过程化的代码 不过是按照现实的实体又重新组织了一下”
    之所以有顺序执行的东西,只是由于CPU执行指令的时候,是按照顺序执行的,
    顺序执行=\=过程化由面向过程开始学编程的人,
    在接触OO的时候,总是会自觉不自觉的拿OO和面向过程作比较,
    比来比去会发现,除了把人搞晕以外,不会给人带来其他好处,
    对于初学者而言,最好彻底忘掉面向过程那些东西lZ应该要有这样的认识:
    OO和面向过程是两个不同的东西,对于初学者而言,二者没有可比性,
    把它们放在一起比较的做法,本身就是错误的,由此比较出来的结果,自然也是错误的。
    (上面的话是对LZ这样的初学者而言的,其他人不要拿板砖拍我)
      

  12.   

    将OO和OOP神话了,说的那么玄乎。其实就那么回事嘛;世界很复杂,但基本原理就那么几条。最好不要在细节上大做文章,特别是搞的非白即黑。程度问题是主要矛盾,是非问题是次要矛盾。
      

  13.   

    OO有一个特性,叫做“封装”,
    它的目的是为了不让人看见内部的实现机制,
    对于初学者而言,一些本质性的东西,也应该“封装”
    有的时候,知道太多了反而容易使人沉迷于细节,
    就像已经有了API,人们还要搞出来一个Java和.Net一样,
    既然是在OO,那就干脆从头到尾都OO人的精力是有限的,特别是初学者,面对一大堆要学习的东西
    如果凡事都从原理讲起,那他们可能穷其一生都未必能够全部了解,
    还不如只告诉他们现成的、“封装”过的东西
      

  14.   

    封装和OO或者OOP并没有必然关系,也就是说封装并不只存在于所谓OO里。从这个角度说,封装是基本原理,OO是表现,是细节。连封装都不理解,谈什么OO?舍本逐末。
    正因为是初学者,才应该从基础学起,下面的东西都不懂,会Java没用,会.NET也没用,因为这个“会”是非常粗浅的。
    如果认为原理原来太多,那说明是将非原理的东西也当作了原理,说明老师本身都不懂原理和它的层次。真正的原理,本身是很朴素的,不要神话。
    现在恰恰是很多人一开始就钻在一些表象的东西里面,所以摸索了很长时间也不得要领,不能有质的提升。
      

  15.   

    个人认为,你还没有建立OO的概念,
    没用OO的思维方式看待问题,分析问题
      

  16.   

    我想把以前写的一个程序重新写一遍是一个数据库操作的程序 有3张表 在3张表上分别都有增加 删除 修改 查询等操作我想写一个类 中包含这4个过程 当对每个表进行操作的时候 继承类 并覆盖其中的成员函数然后使用此对象进行增加 删除 修改 查询等操作不知道我这样弄是不是OOP啊  现在只想弄明白这个啊 大头鸟和桂枝香在故国晚秋两位大人帮忙看一下吧
      

  17.   

    to LZ:
    宽泛点说,如果你用到了object,那你就是在OOP
    要是严格说,如果你看待一件事情,首先想到的是流程,
    那即使你是在写object,也算不得OOP