# 面向对象(OOP)基本概念
**面向对象编程** —— `Object Oriented Programming` 简写 `OOP`
## 目标
* 了解 **面向对象** 基本概念
## 01\. 面向对象基本概念
* 我们之前学习的编程方式就是 **面向过程** 的
* **面相过程** 和 **面相对象**,是两种不同的 **编程方式**
* 对比 **面向过程** 的特点,可以更好地了解什么是 **面向对象**
### 1.1 过程和函数(科普)
* **过程** 是早期的一个编程概念
* **过程** 类似于函数,只能执行,但是没有返回值
* **函数** 不仅能执行,还可以返回结果
### 1.2 面相过程 和 面相对象 基本概念
#### 1) **面相过程** —— **怎么做**?
1. 把完成某一个需求的 `所有步骤` `从头到尾` 逐步实现
2. 根据开发需求,将某些 **功能独立** 的代码 **封装** 成一个又一个 **函数**
3. 最后完成的代码,就是顺序地调用 **不同的函数**
**特点**
1. 注重 **步骤与过程**,不注重职责分工
2. 如果需求复杂,代码会变得很复杂
3. **开发复杂项目,没有固定的套路,开发难度很大!**
![](https://pic.downk.cc/item/5e85cbf2504f4bcb042e2fc0.jpg)
#### 2) **面向对象** —— **谁来做**?
> 相比较函数,**面向对象** 是 **更大** 的 **封装**,根据 **职责** 在 **一个对象中 封装 多个方法**
1. 在完成某一个需求前,首先确定 **职责** —— **要做的事情(方法)**
2. 根据 **职责** 确定不同的 **对象**,在 **对象** 内部封装不同的 **方法**(多个)
3. 最后完成的代码,就是顺序地让 **不同的对象** 调用 **不同的方法**
**特点**
1. 注重 **对象和职责**,不同的对象承担不同的职责
2. 更加适合应对复杂的需求变化,**是专门应对复杂项目开发,提供的固定套路**
3. **需要在面向过程基础上,再学习一些面向对象的语法**
![](https://pic.downk.cc/item/5e85cc1c504f4bcb042f453b.jpg)
![](https://pic.downk.cc/item/5e85cc5e504f4bcb0430f2b0.jpg)


- linux基础
- 01_Python基础课程安排
- 02_操作系统(科普章节)
- 03_操作系统的发展史(科普章节)
- 04_文件和目录(理解)
- 05_Ubuntu图形界面入门
- 06_常用Linux命令的基本使用
- 07_Linux终端命令格式
- 08_文件和目录常用命令
- 09_远程管理常用命令
- 10_用户权限相关命令
- 11_系统信息相关命令
- 12_其他命令
- python基础
- 01_认识 Python
- 02_第一个Python 程序
- 03_PyCharm的初始设置(知道)
- 04_多文件项目的演练
- 05_注释
- 06_算数运算符
- 07_程序执行原理(科普)
- 08_变量的基本使用
- 09_变量的命名
- 10_判断(if)语句
- 11_运算符
- 12_循环
- 13_函数基础
- 14_高级变量类型
- 15_综合应用——名片管理系统
- 16_变量进阶(理解)
- 17_函数进阶.md
- 面向对象
- 01_面向对象(OOP)基本概念
- 02_类和对象
- 03_面向对象基础语法
- 04_面向对象封装案例
- 05_面向对象封装案例 II