面向对象(Procedure-Oriented Programming,简称POP)
面向对象是一种编程模型,由一系列要执行的计算步骤组成,通常采用自上而下、顺序执行的方式。
它围绕数据或对象而不是功能和逻辑来组织软件设计,更专注于对象与对象之间的交互,对象涉及的方法和属性都在对象内部。说的更底层一点就是面向对象是一种依赖于类和对象概念的编程方式。
什么是面向对象呢?
面向对象的开发形式更注重对象A,对象B,对象C,然后组合起来的对象ABC或对象CBA!
面向对象的编程语言包括:C++、Java、Python、C#以及JavaScript等。
类:是相同种类对象的抽象,是它们的公共属性。
对象:对象是类的实例。
采用面向对象的方式进行开发,更符合人类的思想方式.人类就是以"对象"的方式去认识世界的.也正是因为这个,面向对象才成为主流的原因!面向对象就是将现实世界分割成不同的单元,然后 每个单元都实现成对象 ,然后驱动一下,让 各个对象之间协作起来形成一个系统.
举个例子:对象"张三" , 对象"香烟" , 对象"打火机" , 对象"吸烟的场所"这4个对象组合在一起就可以模拟一个人的抽烟场景.其中对象"张三"可以更换成"李四",对象"香烟",对象"打火机",对象"吸烟的场所"也可以进行更换!这样的话 耦合度低,并且扩展力很强!
面向对象将一个事物描述为一个对象,这个对象包括各种属性和方法,例如上面把大象装进冰箱的例子,冰箱的属性包括:长、宽、高、温度等,方法有:打开、关闭、存储等,这些属性和方法都属于这个对象。
在现实生活中,一座楼、一辆车、一个班级、一个人等都可以对象化。
同样,也把大象放进冰箱为例进行说明,面向对象的方式为:
冰箱是一个对象,大象也是一个对象。冰箱有自己的方法,打开、存储、关闭,有自己的属性:长、宽、高等。大象也有自己的方法,吃、走路等,有自己的属性:体重、高度、体积等。
什么是面向过程?
面向过程的编程语言包括:C、Fortran、Pascal、Basic等。
面向过程的优点
对于小型项目,采用面向过程的方式开发,效率较高 .可以直接开始干活,写代码来实现功能,并不需要前期对对象提取什么的!
面向过程的缺点
面向过程是每一步与每一步的因果关系,其中A步骤因果关系到B步骤.A和B结合起来形成一个子模块,子模块又和子模块之间因为因果关系结合在一起,假设其中 任何一个因果关系出现问题(错误),此时整个系统的运转都会出现问题 (代码与代码之间的耦合度太高,扩展力差!)
面向对象和面向过程的区别
- 对于C语言是完全面对过程的.
- C++是一般面向过程,一半面向对象的,也就是半面向对象的.
- JAVA语言是完全面向对象的!
面向过程和面向对象的区别:
①安全性
面向对象比面向过程安全性更高,面向对象将数据访问隐藏在了类的成员函数中,而且,类的成员变量和成员函数都有不同的访问属性。而面向过程并没有合适的方法来隐藏程序数据。
②程序设计上
面向过程通常将程序分为一个个的函数,而面向对象编程中通常使用一个个对象来,函数通常是对象的一个方法。
③过程
面向过程通常采用自上而下的方法,而面向对象通常采用自下而上的方法。
④程序修改
面向对象编程更容易修改程序,更容易添加新功能。
举个“栗子”: 假如现在需要开发一个计算机!
如果用 面向过程 的方式来开发一个计算机!那么就不存在任何一个部件,所有的东西都融合在一起,成为了一个一体机!如果说计算机的某个地方坏掉了,那么这整个计算机都坏掉了,就直接废掉挂闲鱼了(估计咸鱼挂不上!哈哈哈哈哈)!
如果用 面向对象 的方式来开发这个计算机!那么内存条就一个对象,主板是一个对象,CPU是一个对象,硬盘等等电脑任何一个部件都是一个对象!.然后把所有对象组合在一起形成了电脑!这个是个哪个地方坏掉了,我们就找到这个对象,然后换掉那个对象就欧克了!例如内存条快掉了,就换个内存条就木有问题了啦!这样的耦合度就很低,扩展力很强的有木有!
再简单举个例子!咱们洗衣服是很常见的对吧!
面向过程时:
- 我们需要第一步脱衣服
- 第二步放到盆里
- 第三步倒洗衣粉
- 第四步倒水浸泡
- 第五步手洗衣服
- 第六步清洗衣服
- 第七步拧干
- 第八步晾衣服
然而到面向对象时:
- 脱衣服
- 找到对象全自动洗衣机(该洗衣机具备洗衣服的功能)
- 晾衣服
- 第四步就...就没啦~
这样子一比较的话就爱上面向对象了有木有啊有木有,简直是神操作!
面向对象思想的特点就是不断的创建对象,再使用该对象调用功能!面向对象虽然是着重对象的,但是他也是基于面向过程的!就比如洗衣服,找到了对象全自动洗衣机,但是该洗衣机具备的洗衣服功能是面向过程的,需要代码来实现这个洗衣功能!
这就是能给大家带来的面向对象以及面向过程的知识啦~ 希望能给大家带来帮助,小白会继续加油哒~