面向对象和面向过程
- 面向过程:在面向过程程序设计中,问题被看作一系列需要完成的任务,函数则用于完成这些任务,解决问题的焦点集中于函数。以C语言为代表
- 面向对象:最大的优点是符合抽象,封装,细节隐藏等基本程序设计的原则。需求分析、程序设计、编码实现等过程可以无缝衔接(利用UML建模)。面向对象的程序在结构上更加健壮和稳定。以Java为代表
对于描述复杂的事务,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。
什么是面向对象
- 面向对象编程(
Object-Oriented Programming,OOP) - 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。
抽象
万物皆对象,将现实的事物抽象出来,注意抽象这个词是重点,把现实对象的事物以及关系,抽象成类,通过继承、实现、组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。
抽象会使复杂的问题简单化,从以前执行者变成指挥者,面向对象更符合人类思维,面向过程符合机器思想。
通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特性。
例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程,就是一个抽象的过程。要抽象,就必须进行比较,没有比较就无法找到共同的部分。
- 数据抽象——就是用代码的形式表示现时世界中一类事物的特性,就是针对对象的属性。比如建立一个鸟这样的类,鸟都有以下属性:一对翅膀、两只脚、羽毛等。抽象出来的类都是鸟的属性,或者成员变量。
- 过程抽象——就是用代码形式表示现实世界中事物的一系列行为,就是针对对象的行为特征。比如鸟会飞、会叫等。抽象出来的类一般都是鸟的方法。