什么是数据结构
数据类型(从存储层次上)
- 基本数据类型(atomic data type)
- 结构型数据类型(structure data type)
- 抽象数据类型(Abstract Data Type,ADT)
结构化程序设计
结构化程序设计的方法
传统程序设计的方法=由下而上的设计+由上而下的设计
- 由下而上/自下而上的设计:先编写整个程序需求中最容易的部分,再逐步扩大来完成。
- 由上而下/自上而下的设计:将整个程序需求从上而下、由大到小逐步分解成较小的单元(“模块”), 随后针对各模块分别开发。每一个模块会完成特定的功能,主程序则组合每个模块后,完成最后要求的功能。
结构化程序设计的方法=由上而下的设计+模块化设计
- 由上而下/自上而下的设计:(略)
- 模块化设计
模块(module)/过程(procedure)/函数(function)
结构化程序设计的控制流程=顺序结构+选择结构+重复结构
- 顺序结构:逐步编写程序语句
- 选择结构:根据某些条件做逻辑判断
- 重复结构:根据某些条件决定足否充复执行某些程序语句
(结构化程序设计/面向过程的程序设计)目的:可减轻设计者负担、可读性较高,便于日后维护。
(结构化程序设计/面向过程的程序设计)缺陷:一旦主程序要求的功能变动时,则可能许多模块内的数据算法都需要同步变动——面向过程的设计/结构化程序设计无法有效使用程序代码的主要原因。
面向对象程序设计
类与对象
类/对象=属性+方法+事件
- 属性(attribute):对象的静态外观描述。
- 方法(method):是指对象中的动态响应方式。
- 事件(event):指对象可以针对外部事件做出各种反应;对象也可以主动地发出事件信息。
抽象类
“抽象化”:将代表事物特征的数据隐藏起来,并定义一些方法来作为操作这些数据的接口,让用户只能接触到这些方法,而无法直接使用数据。
抽象类(abstract class):至少包含一个完整方法及一至多个抽象方法的“基类”。
- 抽象方法:使用保留字“abstract”来声明,并且不加入任何内容叙述的成员方法。
面向对象程序设计的特性(共3种)
面向对象程序设计的特性=封装性+继承性+多态性
- 封装性:利用“类”来实现“抽象数据类型”(ADT)。
“抽象”:隐藏代表事物特征的数据,并定义一些方法来作为操作这些数据的接口,为了实现信息隐藏的目的,让用户只能接触到这些方法,而无法直接使用数据。
“抽象数据类型”:面向对象程序设计中自定义的数据类型。 - 继承性:定义一个新的类来继承既存的类,进而使用或修改继承而来的方法, 并可在子类中加入新的数据成员与函数成员。
“基类”或“父类”:在继承关系中的被继承者。
“派生类”或“子 类”:在继承关系中的继承者。 - 多态性/同名异式:让具有继承关系的不同类对象,可以调用相同名称的成员函数,并产生不同的反应结果。