全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念

news/2024/9/20 10:25:49

全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念

以下,我们将简单介绍面向对象编程的基本概念和图形化描述方法,在后面的章节中我们将会辅以具体编程实例进行详细介绍。

1 类和对象

对象是数据及其行为的集合,而类往往用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。例如苹果和橘子属于两个不同类,苹果属于苹果类、橘子属于橘子类。

那么对象和类之间的区别是什么?类是用来描述对象的。它们就像是用来创造对象的蓝图。例如你面前的桌子上放着 3 个橘子,每一个橘子都是一个不同的对象,但这 3 个橘子拥有来自同一类的相同属性和行为,即广义的橘子类。

对象(橘子)是类(橘子类)的实例。

这里,我们可以吃苹果、削苹果、洗苹果,这就是对象中的方法。同时,不同橘子的重量、甜度、价格不同,这就是橘子对象的属性,通常代表一个特定对象的个体特征。

2 面向对象的三大特性继承、多态和封装

这里借用知乎一位大佬的回答,形象的解释:

image

3 统一建模语言(UML)

UML 是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML 用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML 代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。

对于初学者来讲,掌握 UML 类图和对象图即可,在自己的项目过程中可以使用博思白板等软件绘制 UML 类图。

image
image

4.编程环境

示例代码下列仓库中:

一文速通 Python 面向对象编程-文档示例程序

此文件夹中包括如下文件:

  • 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

image

本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码进行可视化阅读便于读者理解。

相关示例代码获取链接如下:

https://github.com/leezisheng/Python-OOP-Demo

image

image

往期推荐:

关于文档的更多介绍可看:

学嵌入式的你,还不会面向对象??!

全网最适合入门的面向对象编程教程:00 面向对象设计方法导论

给你的 Python 加加速:一文速通 Python 并行计算

一文搞懂 CM3 单片机调试原理

肝了半个月,嵌入式技术栈大汇总出炉

电子计算机类比赛的“武林秘籍”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/47524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes 审计(Auditing)

Kubernetes 审计(Auditing),Kubernetes 审计简介,审计策略简介,引入审计,启用审计,记录审计阶段为:ResponseStarted,审计级别为Metadata,apiVersion为group: "" 的日志,只记录audit命名空间里的日志,只记录audit命名空间的pods操作日志,只记录audit命名…

Excel动态日历1

日历是我们生活中不可或缺的一部分,它能帮助我们规划时间、安排计划,以及记录生活中的点滴。而动态日历图则更是一种流行的视觉呈现方式,它可以直观地展示出每个日期的数据变化和趋势,让我们更好地理解时间和事件的关系。在这篇文章中,我们将向你介绍如何使用Excel制作一个…

ubuntu通过安装包安装Mongodb

下载官方的压缩包 下载地址 选择对应的版本,这里用 x64架构的ubuntu20.04作为演示 在服务器创建mongodb的自定义安装目录 例如安装在/opt/mongodb#创建安装目录mkdir -p /opt/mongodb#创建mongoDB数据目录mkdir -p /opt/mongodbDATA#创建mongodb日志目录mkdir -p /opt/mongodb…

GUI学习

GUI学习 前言:本来不打算学习Gui的,不过最近需要用到还是学习一下吧 1.1 awt 与swing java的图形化界面的对象存在于awt与swing包中,awt需要调用本地系统方法实现功能,在不同的 平台下显示不同,swing是在awt的基础上实现的一套图形化界面,提供了更多组件,由于全部都适 用…

AI制图生产力:Midjourney v5和Stable Diffusion Reimagine

随着生成型AI技术的能力提升,越来越多的注意力放在了通过AI模型提升研发效率上。业内比较火的AI模型有很多,比如画图神器Midjourney、用途多样的Stable Diffusion,以及OpenAI此前刚刚迭代的DALL-E 2。对于研发团队而言,尽管Midjourney功能强大且不需要本地安装,但它对于硬…

【编译原理】第六章课后习题(王原生第三版)

前言课本: 编译原理(第三版)[王生原、董渊..等编著] 习题: 主要习题内容是第一章到第八章,具体内容如下表章节 内容 链接第一章 课后部分选择题 https://blog.csdn.net/Zchengjisihan/article/details/136243955第二章 课后部分选择题 https://blog.csdn.net/Zchengjisiha…

【编译原理】第五章课后习题(王原生第三版)

前言课本: 编译原理(第三版)[王生原、董渊..等编著] 习题: 主要习题内容是第一章到第八章,具体内容如下表章节 内容 链接第一章 课后部分选择题 https://blog.csdn.net/Zchengjisihan/article/details/136243955第二章 课后部分选择题 https://blog.csdn.net/Zchengjisiha…

【编译原理】第四章课后习题(王原生第三版)

前言课本: 编译原理(第三版)[王生原、董渊..等编著] 习题: 主要习题内容是第一章到第八章,具体内容如下表章节 内容 链接第一章 课后部分选择题 https://blog.csdn.net/Zchengjisihan/article/details/136243955第二章 课后部分选择题 https://blog.csdn.net/Zchengjisiha…