分类:
2008-09-18 11:32:20
我们一直在犯一个很严重的错误
当我们学完一种面向对象的语言后便急于拿着它来编程,
如果你学完的是C,那么,你说“我会设计程式了!”
我非常的相信,因为C的确是一种小巧灵活的语言,一学完它
的确是可以解决我们很多的问题,不过更重要的是它是面象过程的,
我们的思维很容易接受这种从大到小,一步一步分析问题的方法,好
像这是理所当然的,所以你说“我会编程了”,我不怀疑。
但是,如果你学的是C++/JAVA,你说“我会设计程式了”我就深感
怀疑了。
也许你会说,我可以用JAVA写个记事本了,难道不算会编程么?
其实这只能说明你会用JAVA类库而以,也许你会觉得这很牵强,
不,我说的是事实,因为我们很多时候连面向对象的概念都很模糊
你可能会大声吼道,面向对象不就是一个类与对象的关系么?
的确这一说就说到了面向对象的核心了,,但往往我们还真搞不清什么是类。什么是对象。
面向对象的思维方法是从生活中得来并再一次抽象的,但我们在生活却犯着这样的错误:
当你拿着一盘苹果时,也许你会对你的朋友说。来,吃水果。或者你买了一块新的电子表(对是那种数字显示而非表盘),你会对你的朋友炫耀,看看!我的表多漂亮。
但我们想过没有,苹果不并等同与水果,而是水果的一个具体,
水果是一种抽象,电子表也是一样,他是表的一个具体。我们常常把
具体的东西等同于他们的抽象了,这样,我们常常在创建一个类时只是
把对象的共同点进行了一个浅屋抽象,比如要创建一个水果类,而我们
创建的却是一个苹果类,他只是把“红富士苹果”,“XXX苹果”浅层地
抽象了一下,并没有抓住实质,,,
甚至有时我们干脆就直接就创建了一套具体的动作,把它封装在了一个类里
这时我们又回到了面向过程,,因为面向过程很多时候的确是一套动作+数据
的组合。
所以,我们一直在拿着面向对象的语言盲目的写程式,我们根本没有抓住它的
灵魂,我们还是按照一种习惯的过程式或其它的方法写程式,只不过原来的函数
换成了类而以。
这就是我为什么发出“我们一直在犯一个很严重的错误”的感慨的原因,,
也许我们在学完C++后,的确是要克住一下激动的心情,静静地坐下来再学一学
面向对象的方法