在面向对象眼里,一切都是对象!这些对象有着一系列其妙而古怪的特性。
从微观角度讲:对象有着坚硬的外壳,从外部看来,除了它用来与外界交互的消息通道外,对象内部就是一个黑匣子,什么也看不到,这称为封装;对象可以结合在一起形成新的对象,结合后的对象具有前两者特性的总和,这称为聚合;对象可以繁育,产下的孩子将拥有父辈的全部本领,这称为继承;每个对象都有多个外貌,在不同情况下可以展现不同的外貌,但本质只有一个,这就是接口;而多个对象却可能长者相同的脸,但同样的这张脸背后却是不同的对象,它们有着不同的行为,这就是多态。
从宏观角度讲,对象是“短视”的,他不知道也无法理解它所处的宏观环境,也不知道它的行为会对整个宏观环境造成怎样的影响。它只知道与它有着联系的身边的一小群伙伴,这成为依赖;并与小伙伴间保持着信息交流的关系,这称为耦合;同时对象也是“自私”的,即便在伙伴之间,每个对象也仍然顽固地保护者自己的领地,这称为类属性;只允许其他对象通过它打开的小小窗口进行交流,从不允许对方进入它的领地,这称为方法。
然而,对象也喜欢群居,并总是“物以类聚,人以群分”。这些群居的对象有着一些相似的性质,它们依靠这些相似的性质来组成一个部落。对象们寻找相似性质并组成部落的过程称为抽象,它们组成的部落称为类;部落里的每个成员既有共同的性质又有自己的个性,我们只有把特有的个性赋给部落成员才能区分它们并使它们活动起来,这称为实例化。
网友评论