OOP 学习笔记(0)——开始学习之前
Contents
开始学习之前
请知悉:学习资料主要来自清华大学刘知远、姚海龙、黄民烈课程团队,刘知远老师的课件。
部分照搬,部分总结,有一些有我自己举的例子。
参考网站、书籍
- www.cplusplus.com
设计模式-可复用面向对象软件的基础 Erich Gamma, etc...
- 机械工业出版社 2000.9 李英军等译
- C++ primer plus(第 6 版) Stephen Prata(2012 年 7 月第 1 版)
- 人民邮电出版社,张海龙、袁国忠 译
- 深入理解 C++11——C++11 新特性解析与应用
- 机械工业出版社 2015 年 5 月 Michael Wong 等
- C++ 标准程序库 Nicolai M.Josuttis
- 华中科技大学出版社 2002.9 侯捷/孟岩 译
- 深度探索 C++ 对象模型 Stanley B.Lippman
- 华中科技大学出版社 2001.5 侯捷 译
- 深入实践 C++ 模板编程
- 机械工业出版社 2013 年 6 月 温宇杰 著
还有很多就不列举了。
课程目标——编写更好的软件
主要是简单性、清晰性、普遍性。
课程中几个台阶
- C/C++ 面向对象编程(具体操作重用)
- 类(对象)
- 继承和组合(源代码重用)
- 虚函数 $\rightarrow$ 多态
- 模板 $\rightarrow$ 泛型编程(源代码重用)
- 设计模式 Design Patterns(解决方案重用)
与程序设计基础课程区别
本课程重点解决怎么“看”,而 FOP 重点解决怎么“算”。
OOP 课程希望培养“抽象思维”,通过抽象认知复杂世界。
“对象”
对象是对现实世界中实际事物的一种抽象描述,它可以是有形的实体,也可以是无形的概念。
对象是构成世界的一个独立单位,它具有静态、动态特征:
- 静态特征:可以用某种数据描述的特征
- 动态特征:对象表现的行为或具有的功能
也就是说,对象是属性和服务的结合体。
“抽象”
从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫做抽象。
抽象是形成概念的必要手段:
- 过程抽象:任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体。
- 数据抽象:根据施加于数据上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。
No Comments