很简单,比如说你写个程序实现的功能是:我去上学
以前我们是面向过程的,所以你要写一个函数表示“去”你可以写成骑车去,或者坐车去,然后你要表示“我”和“学校”
而在面向对象里面:一切皆对象!
意思就是:“我”是一个对象,具体怎么实现的“我”,我们可能还不能了解,但是我们知道这个是“我”,就可以运用了;然后“去”由于也是一个对象,我们不必了解是走着去还是骑车去,因为“去”是一个对象,你调用它就好了,“上学”也一样
所以当你用面向对象的时候:我去上学,这句话有三个对象,你只要在主函数里面调用这些对象的相应的方法就好了。
所以在面向对象中,你的代码必须写在类里面
面向对象里面的代码的复用性大大提高,因为所有的面向过程的函数都成为了对象,可以重复调用,比如“去”,你也可以变成:我去上班。
楼主是不是在看 think in java
呵呵
这句话是相对于C++而言的,因为C++还有很多C语言的过程化思想在里头,C语言是结构化程序设计语言,以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码
(1) 以控制结构为单位,只有一个入口,一个出口,所以能独立地理解这一部分。
(2) 能够以控制结构为单位,从上到下顺序地阅读程序文本。
(3) 由于程序的静态描述与执行时的控制流程容易对应,所以能够方便正确地理解程序的动作。
而java是纯粹面向对象的程序设计语言,所有的程序,程序中的数据都可以是对象,所有的方法都是对象的方法。
编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.
I can call spirits from the vasty deep.
Why, so can I, or so can any man; but will they come when you do call for them?
- SHAKESPEARE
‘一切皆对象!’这句话解释网上一查一堆。但这句话你到不同程度会有不同的理解,侯捷当初也是在多年经验的基础上译出这句话。需要你在项目中慢慢体会的,你达到了一个程度,自然会理解到一个程度。说了解它的含义你应该知道什么样的设计能使得模块的重用最大化?
更重要的是,你应该知道怎样设计能延伸相同的策略,使它不但可以包括发布产品,而且还包括以增量开发策略创建的后续中间版本,这样,产品可以通过它的中间阶段,以最低限度的回溯代价增长。
一切皆是对象
一、分解
(一)“一切皆对象”实际是“一切皆类的对象”的“省略说法”,翻译时不严谨;
(二)一切皆对象=一切皆“类的对象”;
(三)类=集合(类比);
(四)对象(实例)=元素(类比);
(五)“对象(实例)与类”的关系就是“特殊性与共性”的关系;
(六)“元素与集合”的关系“也是”“特殊性与共性”的关系;
(七)由“以上(五)和(六)”可得:无论是“对象(实例)与类”的关系还是“元素与集合”的关系,其本质关系可由“特殊性与共性”关系来“统一”,而“‘特殊性与共性’及‘其关系’”是哲学概念,所以“它们”最终“被哲学统一”!
二、组合
(一)一切皆对象=一切皆“集合的元素”(类比);
(二)根类=全集(类比);
(三)类中类=集合中的集合(类比);
(四)类对象=将类作为其父类的对象=将集合作为父集合的对象。
三、类比理解
(一)将“类”与“集合”类比;
(二)将“对象(实例)”与“元素”类比。
四、一切皆集合【一切事物都可以看成集合(即:一切事物都有其共性)】
(一)每个集合都有元素,即“存在集合”就一定“存在元素”(在这里是:先有集合后有元素);
(二)一切皆对象=一切皆集合(“一切皆对象”是由“一切皆集合”推导而来的)。
五、一切皆对象【一切事物都可以看成元素(即:一切事物都有其特殊性)】
(一)每个元素都属于一个集合,即“存在元素”就一定能找到“它对应的集合”(这里是:先有元素后有集合);
(二)一切皆集合=一切皆对象(“一切皆集合”也可由“一切皆对象”推导而来的)。
六、相互依存的关系
(一)“类与对象(实例)”(在计算机领域中做这样的表述)是“相互依存的关系”;
(二)“集合与元素”(在数学中做这样的表述)也是“相互依存的关系”;
(三)“共性与特殊性”(在哲学中做这样的表述)也是“相互依存的关系”。
七、【客观本质(从哲学角度理解)】
【一切事物不能离开其共性而存在(即:一切事物都有其共性),一切事物也不能离开其特殊性而存在(即:一切事物都有其特殊性)。】
八、对Object的翻译
(一)Object翻译成中文是:物体、对象、目标、目的、宗旨等意思。
(二)将Object翻译成对象,很绕,不直接;“一切皆物体”,人人都能理解其含义;表述成“一切皆对象”不易理解。
(三)中国北方一些地方的“对象”含义是:恋爱的另一方(只可能是“男人或女人”),这样一来就有:面向“对象”编程=面向“男人或女人”编程,所以翻译成“对象”不容易理解,至少是“理解起来不直接”;将Objec翻译成“物体”更好!“物体”包含了“一切”。
(四)一切皆对象=一切皆物体。
(五)面向对象=面向物体。
(六)面向对象编程=面向物体编程。
(七)面向对象编程=以对象为导向编程=以物体为导向编程。