@[toc]
面向过程 & 面向对象
面向过程思想:
强调的是功能的行为,以函数为最小单位,考虑怎么做
- 步骤清晰简单,第一步做什么,第二步做什么......
- 面向过程适合处理一些较为简单的问题
面向对象思想:
强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
- 物以类聚,分类的思维模式,思考解决问题首先需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程的思考。
- 面向对象适合处理复杂的问题,适合处理需要多人协作的问题。
对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统
。但是,具体到微观操作,仍然需要面向过程的思路去处理
。
举个例子:
人把大象装进冰箱 —— 这个问题怎么做?
面向过程写法:
- 把冰箱门打开
- 抬起大象,塞进冰箱
- 把冰箱门关闭
面向对象写法:
人{
打开(冰箱){
冰箱.打开();
}
抬起(大象){
大象.进入(冰箱);
}
关闭(冰箱){
冰箱.关闭();
}
}
冰箱{
打开(){
具体操作
}
关闭(){
具体操作
}
}
大象{
进入(冰箱){
具体操作
}
}
什么是面向对象
面向对象编程(Object-Oriented Programming,OOP)
面向对象的本质就是:以类的方式组织代码,以对象的方式组织 ( 封装 ) 数据。
面向对象的三大特征:
- 封装
- 继承
- 多态
从生活认知角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对于对象的抽象。
从代码运行角度考虑是先有类后有对象。类是对象的模板。
类与对象的关系
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。
- 动物、植物、电子产品......
- Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为。
对象是抽象概念的具体实例
- 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。
面向对象的思想概述
程序员从面向过程的执行者转化成了面向对象的指挥者
面向对象分析方法分析问题的思路和步骤:
- 根据问题需要,选择问题所针对的现实世界中的实体。
- 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
- 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据结构。
- 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具。