面向对象简介
面向过程
面向过程是一种以过程为中心的编程思想。通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程编程思想的核心:功能分解,自顶向下,逐层细化()。
面向过程编程语言存在的主要缺点是不符合人的思维习惯,而是要用计算机的思维方式去处理问题,而且面向过程编程语言重用性低、维护困难。
面向对象
面向对象编程(Object-Oriented Programming)简称 OOP 技术,是开发计算机应用程序的一种新方法、新思想。过去的面向过程编程常常会导致所有的代码都包含在几个模块中,使程序难以阅读和维护。在做一些修改时常常牵一动百,使以后的开发和维护难以为继。而使用 OOP 技术,常常要使用许多代码模块,每个模块都只提供特定的功能,它们是彼此独立的,这样就增大了代码重用的几率,更加有利于软件的开发、维护和升级。
在面向对象中,,现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以可以用下面的等式来定义对象和程序:
- 对象 = 算法 + 数据结构
从上面的等式可以看出,程序就是许多对象在计算机中相继表现自己,而对象则是一个个程序实体。
面向对象编程思想的核心:应对变化,提高复用。
三大特性
有些地方会描述为四大特性:抽象、封装、继承、多态。
抽象
- 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。
封装
- 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
- 类将成员变量和成员函数封装在类的内部,根据需要设置访问权限,通过成员函数管理内部状态。
继承
- 继承所表达的是类之间相关的关系,这种关系使得对象可以继承另外一类对象的特征和能力。
- 继承的作用:避免公用代码的重复开发,减少代码和数据冗余。
多态
- 多态性可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。
三个概念的关系
面向对象的四大基本特征是:抽象、封装、继承、多态。四大基本特征是我们在进行面向对象编程的准则,但是我们在进行面向对象编程之前还需要进行面向对象分析(Object-Oriented Analysis),通过分析业务,确定需求,找出对象,知道我们要干什么,然后就是进行面向对象的设计(Object-Oriented Design),知道我们如何干,最后才是面向对象的编程(Object-Oriented Program),具体的代码实现阶段。
为什么要面向对象设计
不论是面向过程的思维方式,还是面向对象的思维方式,最终都是为了能更好的进行软件开发,而软件开发的唯一真理是“软件一定会变化”,而一个好的设计是应该能够轻松的应对变化,能被扩展,并且能够被复用。应该最好是,这样的设计才是一个优秀的设计,所以我们需要进行面向对象的设计。