c++编程思想---对象的演化

1、基本概念:

     C + +包含了比面向对象程序设计基本概念更多的内容。
1.1 对象:特性+行为

        类描述了一组有相同特性(数据元素)和相同行为(函数)的对象。类实际上就是数据类型,例如,浮点数也有一组特性和行为。区别在于程序员定义类是为了与具体问题相适应,而不是被迫使用已存在的数据类型。这些已存在的数据类型的设计动机仅仅是为了描述机器的存储单元。程序员可以通过增添他所需要的新数据类型来扩展这个程序设计语言。该程序设计系统欢迎创建、关注新的类,对它们进行与内部类型一样的类型检查。

1.2 继承:类型关系

       类型不仅仅说明一组对象上的约束,还说明与其他类型之间的关系。两个类型可以有共同的特性和行为,但是,一个类型可能包括比另一个类型更多的特性,也可以处理更多的消息(或对消息进行不同的处理)。继承表示了基本类型和派生类型之间的相似性。一个基本类型具有所有由它派生出来的类型所共有的特性和行为。程序员创建一个基本类型以描述系统中一些对象的思想核心。由这个基本类型派生出其他类型,表达了认识该核心的不同途径。

1.3 多态性
        当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码。在形体例子中,函数可以对一般形体进行操作,而不关心它们是圆、正方形还是三角形。所有的形体都能被绘制、擦除和移动,所以这些函数能简单地发送消息给一个形体对象,而不考虑这个对象如何处理这个消息。

1.4 操作概念: OOP程序像什么
       我们已经知道,用C 语言编写的过程程序就是一些数据定义和函数调用。要理解这种程序的含义,程序员必须掌握函数调用和函数实现的本身。这就是过程程序需要中间表示的原因。中间表示容易引起混淆,因为中间表示的表述是原始的,更偏向于计算机,而不偏向于所解决的问题。

       因为 C++ 向 C 语言增加了许多新概念,所以程序员很自然地认为, C + +程序中的m a i n ( )会比功能相同的 C 程序更复杂。但令人吃惊的是,一个写得很好的 C + +程序一般要比功能相同的C程序更简单和容易理解。程序员只会看到一些描述问题空间对象的定义(而不是计算机的描述),发送给这些对象的消息。这些消息表示了在这个空间的活动。面向对象程序设计的优点之一是通过阅读,很容易理解代码。通常,面向对象程序需要较少的代码,因为问题中的许多部分都可以用已存在的库代码。
2 为什么C++会成功
       C + +能够如此成功,部分原因是它的目标不只是为了将 C语言转变成O O P语言(虽然这是最初的目的),而且还为了解决当今程序员,特别是那些在 C语言中已经大量投资的程序员所面临的许多问题。

      C + +的目的是提高效率。效率取决于很多东西,而语言是为了尽可能地帮助使用者,尽可能不用武断的规则或特殊的性能妨碍使用者。 C + +成功是因为它立足于实际:尽可能地为程序员提供最大便利。
3 方法学介绍

3.1.所谓方法学是指一组过程和启发式,用以减少程序设计问题的复杂性。 

3.2.复杂性原则分为内部原则和外部原则

3.3.对象设计的描述:

  • 对象发现 这个阶段出现在程序的最初分析期间
  • 对象装配 我们在建立对象时会发现需要一些新成员,这些新成员在对象发现时期未出现过
  • 系统构造 对对象的更多要求可能出现在以后阶段。随着不断的学习,我们会改进我们的对象
  • 系统扩充 当我们向系统增添新的性能时,可能发现我们先前的设计不容易支持系统扩充。这时,我们可以重新构造部分系统,并很可能要增加新类 
  • 对象重用 这是对类的真正的重点测试

3.4.对象设计的原则

  • 让特殊问题生成一个类,然后在解其他问题时让这个类生长和成熟
  • 发现所需要的类,是设计系统的主要内容
  • 不要强迫自己在一开始就知道每一件事情,应当不断地学习
  • 开始编程,让一部分能够运行,这样就可以证明或反驳已生成的设计
  • 尽量保持简单

3.5.方法应当提供:允许为讨论这个项目将完成什么和如何做而进行通讯的约定;支持项目结构化的系统;能用某抽象形式描述项目的一组工具 。

4.总结

O O P和C + +可能不会对每个人都适合。对自己的需要做出估计,并决定 C + +是否能很好地满足自己的要求,或者是否能很好地离开别的程序设计系统,这是很重要的。如果程序员知道,他的需要对可以预见的未来是非常特别的,如果他有特殊的约束,不能由 C + +满足,那么可以用它研究替代物。即便他最终选择了 C + +作为他的语言,他至少应当懂得这些选项是什么,并应当对为什么取这个方向有清晰的看法。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值