Bladeren bron

finish 3.5.3

fishros 3 jaren geleden
bovenliggende
commit
c9068abd60
1 gewijzigde bestanden met toevoegingen van 32 en 4 verwijderingen
  1. 32 4
      docs/chapt3/3.5.3OOP介绍.md

+ 32 - 4
docs/chapt3/3.5.3OOP介绍.md

@@ -87,15 +87,43 @@
 ## 3.面向对象编程
 简单介绍完,我们来说说今天的主角,面向对象编程OOP。
 
-在ROS1中,大多数程序都是通过面向对象实现的
+面向对象中有五个重要的概念,理解这五个概念相当于对OOP编程有了了解,下面小鱼一个个来介绍
 
+### 3.1 类与对象(抽象与具体)
 
+我们通过调用你家美的冰箱的开门、装东西和关门三个行为来把大象装进冰箱。这时我们可以把`你家的美的冰箱`(具体的)称之为一个对象,而冰箱(抽象的)就称为一个类。
+
+比如说鱼类和小鱼,鱼类就是一个类,而小鱼就是鱼类(抽象的)中的一个对象(具体的)。
+
+在ROS2设计时这种抽象和具体的思想发挥着非常重要的作用,比如说DDS是有很多厂家的,ROS2为了匹配不同厂家的DDS,就设计除了DDS抽象层,而每一个具体的DDS厂家,我们可以称之为一个DDS的对象,是具体的。
+
+
+### 3.2 封装、继承与多态
+
+所谓封装就是将属性和行为封装在一起。上面已经介绍了**对象 = 属性+行为**,比如冰箱将冰箱的温度值(属性)和对温度值的操作(行为)等封装在一起。
+
+继承,继承可以帮我们减少很多的工作量(比如王撕聪从他爹那里继承了很多钱,这样他就少奋斗了很多年),比如ROS2中的执行器类,通过继承执行器类实现了单线程执行器和多线程执行器,更多具体的例子我们在后续的学习中遇到再说。
+
+多态,其实很简单,我们可以说鲤鱼是鱼类,草鱼是鱼类,章鱼是鱼类。同一个鱼类可以有多种不同的类型,即多态。更多的用法,等到写代码的时候再和小鱼一起解锁
 
 ## 4.如何选择code思想
-1.看规模
-2.看发展
-3.看作用
+三种编程思想,我们写程序的时候该如何选择呢?
+
+小鱼个人的拙见是根据你的功能需求来,如果只需要实现一个很简单的功能,比如只是做一个键盘控制器,实现控制小车前进后退,直接采用面向过程的设计思想即可。但如果是做一个稍大的工程,且后续要考虑功能的拓展性,这个时候就需要采用面向对象的思路来了。
+
+那小鱼后续的课程会采用哪一种编程思想呢?
+
+答案是面向对象的方式,原因在于
+
+- 带大家熟悉面向对象的套路有利于大家对ROS2源码和开源代码进行阅读 
+- 有助于培养大家工程化的能力和模块化的思想
+
+
+
+
+## 5.总结
 
+下节课小鱼将带大家一起采用面向对象的编程思想重构实现一下李四节点。