Arduino 编程是既包含C语言(面向过程)又包含C++(面向对象)。
计算机语言发展史
机器语言
计算机硬件系统可以识别的二进制(0或1)指令组成的语言。
缺点:晦涩难懂,难以记忆。
汇编语言
将机器指令映射为一些可被人读懂的助记符,如:ADD、SUB等。再通过汇编程序(翻译软件)转换为机器语言。
缺点:虽比机器语言较容易理解些,但仍与人类语言存在较大鸿沟。
抽象层次太低,需考虑大量机器细节。
优点:意味人与计算机硬件系统不比非使用同种语言。
高级语言
屏蔽机器细节,提高语言抽象层次,程序中可采用具有一定含义的数据命名和容易理解的执行语句。而后出现的结构化编程语言使得编程语言与人类的自然语言更接近。
面向过程的语言(数据和处理数据的过程互为独立实体)
早期计算机适用于数学计算的工具。如,计算炮弹的飞行轨迹。
为了完成计算,必须设计出一个计算方法或者解决问题的过程。故软件设计的主要工作就是设计求解问题的过程。
随计算机性能不断增强,用途也更加广泛,处理问题也日益复杂。故产生结构化程序设计思想:自顶向下、逐步求精。
其程序结构:按功能划分为若干基本模块,这些模块形成树状结构。
各模块之间关系尽可能简单,在功能上相对独立。
每一模块内部均是有顺序、选择和循环三种基本结构组成。
其模块化实现的具体方法是使用子程序。
面向对象的语言(数据和对数据操作方法为整体即对象)
开发软件目的:解决某些问题,这些问题所涉及的业务范围称为该软件的问题域。
面向对象的语言设计的出发点:为能直接描述客观世界中存在的事物(对象)以及它们之间的关系。
对象(是类的具体化的表现形式)
客观世界任何事物(有形[一辆汽车]或无形[一项计划])都可看作对象(万物皆可对象)。
是系统中用来描述客观事物的一个实体,用来构成系统的一个基本单元。由两大要素组成:
属性:描述对象静态特征的数据项。
行为:描述对象动态特征的操作序列。
类(具有相同属性和行为的对象统称)
人类在认识客观世界时经常采用的思维就是:将众多事物归纳,划分成类。分类依据的原则则是抽象(忽略非本质特征,找出事物的共性)。
如:树木、汽车等都是人们长期实践中抽象出来的概念。
四大特性
抽象
对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述过程。
抽象的过程也是对问题进行分析和认识的过程。
一般来讲,对一个问题的抽象应该包括两个方面:
一:数据抽象:描述某类对象的属性或状态,也就是此类对象区别于彼类对象的特征。
二:行为抽象:描述的是某类对象的共同行为或功能特征。
封装
将对象的属性和行为结合成一个独立的系统单元,尽可能隐藏对象的内部细节。
含义一:把对象的全部属性和全部行为结合一起,形成一个不可分割的独立单位。
含义二:尽可能硬币对象的内部细节,对外形成一道屏障,只保留有限的对外接口与外部发生联系。
继承
特殊类的对象拥有其一般类的全部属性与行为,称作特殊类对一般类的继承。
能提高软件开发效率,对于软件复用有重要意义。
多态性
一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。