前面一篇博客,博主的上一篇博客链接我从大话设计模式和J2SE视频中了解了一些面向对象方法中的基本概念,在最后我写了这样一个例子,“主体“我”,需要开车、挂挡、踩油门、经过河北、经过山西…都是“我”去做。那用面向对象方法呢?“我”只要想好去西藏的方式就可以了。”
昨日,高人指点,我和志同道合的朋友们重新认识了面向对象。现在我反过头来再看这个例子,我说的就不对了。
下面总结一些昨日讨论的内容。
面向对象的特征和基础
基础:抽象
三大特征:
封装、继承和多态。
为什么抽象是基础?
上篇博客,我从逆向思维思考了为什么面向对象的基础是抽象。提炼事物之间共同拥有的元素的过程(具体到一般化)。
抽象是将这些事物本质抽取出来,强调的是主要特征,忽略次要特征。从对象和类的关系来解释:类,是对对象的抽象;抽象类,是对普通类的抽象。
抽象只关注对象的属性和行为,不关注行为的细节。
举个“栗子”
以打水为例,进行抽象。
首先,罗列出所有的对象
其次,将对象抽象为类。打水人、受水人、打水工具、打水场所、水等
之后,我们可以将抽象出的类进一步抽象,如将打水人和受水人划为参与人。
在整个面向对象方法中,我们所关注的应该是对象而不是过程。关注的是谁而不是让谁。