全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念
全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念
以下,我们将简单介绍面向对象编程的基本概念和图形化描述方法,在后面的章节中我们将会辅以具体编程实例进行详细介绍。
1 类和对象
对象是数据及其行为的集合,而类往往用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。例如苹果和橘子属于两个不同类,苹果属于苹果类、橘子属于橘子类。
那么对象和类之间的区别是什么?类是用来描述对象的。它们就像是用来创造对象的蓝图。例如你面前的桌子上放着 3 个橘子,每一个橘子都是一个不同的对象,但这 3 个橘子拥有来自同一类的相同属性和行为,即广义的橘子类。
对象(橘子)是类(橘子类)的实例。
这里,我们可以吃苹果、削苹果、洗苹果,这就是对象中的方法。同时,不同橘子的重量、甜度、价格不同,这就是橘子对象的属性,通常代表一个特定对象的个体特征。
2 面向对象的三大特性继承、多态和封装
这里借用知乎一位大佬的回答,形象的解释:
3 统一建模语言(UML)
UML 是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML 用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML 代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。
对于初学者来讲,掌握 UML 类图和对象图即可,在自己的项目过程中可以使用博思白板等软件绘制 UML 类图。
4.编程环境
示例代码下列仓库中:
此文件夹中包括如下文件:
- DateProcess.py:数据处理类,主要定义了DateProcessClass的属性和方法,定义了DateProcessInterface接口;
- FileIO.py:文件保存类, 定义了FileIOClass的属性和方法;
- main.py:主程序,定义了传感器类和主机类的属性和方法,调用其他模块;
- Parallel.py:Python多线程和多进程相关示例程序;
- Plot.py:绘图类,定义了PlotClass的属性和方法;
- Serial.py:串口通信类,定义了SerialClass的属性和方法;
- environment.yml:虚拟环境配置文件;
- Object.srctrlprj:可以sourcetrail软件打开,更好的理解代码;
- test.py:可以忽略;
本文档示例代码主要依赖库及版本号如下:
依赖库 | 版本号 |
---|---|
matplotlib | 3.8.4 |
matplotlib-base | 3.8.4 |
pyqt | 5.15.9 |
pyqtgraph | 0.13.7 |
python | 3.12.1 |
pandas | 2.2.0 |
pillow | 10.2.0 |
pyserial | 3.5 |
zope-interface | 6.3 |
相关环境可以使用 conda 导入示例程序中的 environment.yml 文件重建。
下一节开始,我们就正式进入了教程的主线部分,兄弟们别忘记点点关注!
文档获取
可访问如下链接进行对文档下载:
https://github.com/leezisheng/Doc
本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码进行可视化阅读便于读者理解。
相关示例代码获取链接如下:
https://github.com/leezisheng/Python-OOP-Demo
关于文档的更多介绍可看:
往期推荐:
全网最适合入门的面向对象编程教程:00 面向对象设计方法导论