所谓面向对象,其实是指软件工程中的一类编程风格,很多人称之为开发范式、编程范式(programming Paradigm)。
<aside> 💡 面向对象是众多开发范式中的一种.除了面向对象还有面向过程、指令式编程和函数式编程
虽然近几年函数式编程越来越被人熟知,但在所有的开发范式中,我们接触最多的还是面向过程和面向对象两种
</aside>
面向过程是一种以过程为中心的编程思想,是一种至上而下的编程模式。最典型的面向过程的编程语言就是C语言。
<aside> 💡 基于面向过程进行的软件开发,其代码都是流程化的,可以明确的看出第一步做什么,第二步做什么。
这种方式的代码执行起来效率高,但是面向过程同时存在代码重用性低,扩展能力差,后期维护难度比较大等问题
</aside>
面向对象是程序员将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过对不同对象的调用,组合解决问题。
<aside> 💡 也就是说,面向对象编程时,要把属性、行为等封装成对象,然后基于这些对象及对象的能力实现业务逻辑
1、面向对象编程更加符合人类的思维方式;这种方法编写的代码扩展性、可维护性都很高
2、面向对象的三大基本特征:封装、继承、多态
3、面向对象的五大基本原则:单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则
</aside>
封装、继承、多态
封装:
所谓封装,把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或对象操作,对不可信的类或对象隐藏。
一个类就是一个封装了数据及操作这些数据的代码的逻辑实体,对内部数据提供了不同级别的保护,防止程序中无关部分意外地改变或错误地使用了对象的私有部分。
继承:
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”“父类”“超类”。
继承的过程就是从一般到特殊的过程(如:正方形是矩形派生出来的特列)。
多态:
所谓多态,就是指一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
最常见的多态就是将子类传入父类参数中,当运行时调用父类方法,通过传入的子类决定具体的内部结构或行为
单一职责、开放封闭、里氏替换、接口隔离、依赖倒置