OOP 学习笔记(0)——开始学习之前

OOP 学习笔记(0)——开始学习之前

开始学习之前

请知悉:学习资料主要来自清华大学刘知远、姚海龙、黄民烈课程团队,刘知远老师的课件。

部分照搬,部分总结,有一些有我自己举的例子。

参考网站、书籍

  • 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 月 温宇杰 著

还有很多就不列举了。

课程目标——编写更好的软件

主要是简单性、清晰性、普遍性。

课程中几个台阶

  1. C/C++ 面向对象编程(具体操作重用)
  2. 类(对象)
  3. 继承和组合(源代码重用)
  4. 虚函数 $\rightarrow$ 多态
  5. 模板 $\rightarrow$ 泛型编程(源代码重用)
  6. 设计模式 Design Patterns(解决方案重用)

与程序设计基础课程区别

本课程重点解决怎么“看”,而 FOP 重点解决怎么“算”。

OOP 课程希望培养“抽象思维”,通过抽象认知复杂世界。

“对象”

对象是对现实世界中实际事物的一种抽象描述,它可以是有形的实体,也可以是无形的概念。

对象是构成世界的一个独立单位,它具有静态、动态特征:

  • 静态特征:可以用某种数据描述的特征
  • 动态特征:对象表现的行为或具有的功能

也就是说,对象是属性和服务的结合体

“抽象”

从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫做抽象。

抽象是形成概念的必要手段:

  • 过程抽象:任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体。
  • 数据抽象:根据施加于数据上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。

 

点赞 2

No Comments

Add your comment