C++学习系列文章均翻译自learncpp.com,一个非常好的C++学习网站,这个网站让我领悟到原来深奥的道理也可以讲的如此浅显易懂, 如果所有的软件都有类似的网站该多好啊,为了加深印象,我决定逐章翻译一下这个网站,哎,我自己都不相信我能做到...
之前的所有章节到目前为止都有一个共同的特点:他们都是非面向对象的。现在你已经掌握了一些基本知识我们可以进入面向对象编程了,这才是重头戏!
在传统的编程方法中,程序只是一系列发给电脑的指令,通过定义数据(通过变量)然后处理数据(通过语句和函数)。数据及处理数据的函数是完全独立的实体,被结合起来完成想要的结果。
那么什么是面向对象编程呢?和许多其他情况一样也许通过实际的例子会更容易理解。看看你的周围-你看到的一切都是对象。对象有两个主要的组成部分: 1)一系列的属性(例如:重量,颜色,尺寸,体积,形状等等...), 2)他们可以展现的若干行为(例如:被打开,加热其他的物体等等...)。这些属性和行为是不可分离的。
按照传统的编程方式,属性(数据)及行为(函数)是分离的实体,也就是说传统的编程方式通常无法提供对现实世界的直观的表示。恰当的掌控属性和行为之间的关系成了程序员的责任。
面向对象编程给我们定义一个“对象”的能力,来把属性和行为联系在一起放到一个自我包含,可以重复使用的包中。这就让程序写的更加模块化,更容易编写及理解,同时达到高度的复用。对象也提供了一个更直观的方式来与我们的数据交互,通过允许我们定义我们怎样与对象交互及该对象会怎样与其他对象交互。请注意面向对象编程并没有取代传统的编程方式。更准确的说,他在你的编程工具箱中增加了一个新的工具,来处理复杂的需求,当你需要的时候。
面向对象编程也带来了一些其他的有用的概念:继承,封装,抽象及多态(编程语言设计者的哲学是:可以用高深的词汇表达时就不用简单的词汇)。在接下来的几章中我们将逐一介绍这些概念。接下来会有很多新的内容,但是一旦你掌握了面向对象编程,你将不会再希望回到纯粹的传统编程方式。