欢迎来到面向对象编程

欢迎来到面向对象编程

在1.3章节-介绍变量中,我们知道了C++中的一个对象就是:“一块可以用来存储值的内存区域”,一个有名字的对象被称为变量。

在传统的编程中(我们在此之前一直在做的),程序基本上是计算机的指令列表,它们通过对象定义了数据,然后通过语句和函数使用该数据。数据和处理这个数据的函数是单独的实体,它们组合在一起以产生所需的结果。由于这种分离,导致传统编程在表达上不够直观。程序员可以通过适当的方式管理属性(变量)并将其连接到行为(函数)。用代码表示看起来像这样:

1
driveTo(you, work);

那么什么是面向对象编程?我们来打个比喻吧。看看你周围,你所看到的一切都是一个个对象:书、建筑物、食物,甚至你自己。对象有两个主要组成部分:1)相关的属性列表(例如,重量、颜色、大小、坚固性、形状等);2)一些行为(例如,门可以打开、火能让其他东西变热等)。这些属性和行为是不可分割的。

面向对象编程(OOP)为我们提供了创建对象的能力,这些对象将属性和行为绑定到一个独立的、可重用的包中。用代码表示看起来更像这样:

1
you.driveTo(work); //你(是个对象)开车去上班(是个行为)

这不仅读得更清楚,而且使对象(你)和被调用的行为(开车到某个地方)更清晰明了。我们关注的不是编写函数,而是定义这些具备各种行为的对象。这就是为什么这种范式被称为“面向对象”。

以这种更模块化的方式编写代码,会让程序更容易编写和理解,并且提供了更高程度的代码重用性。我们可以定义如何与这些对象交互以及它们如何与其他对象交互,从而以更直观的方式来处理我们的数据。

注意,OOP不能取代传统的编程方法。相反,它在编程工具带中为您提供了额外的工具,以便在需要时管理复杂性。

面向对象编程还带来了其他几个有用的概念:继承、封装、抽象和多态性。在接下来的几章中,我们将介绍所有这些概念。这些概念看起来挺多,但是一旦你已经熟悉了OOP,你可能再也不想回到传统的编程方式了。

注意,“对象”这个词可以表达的事情太多了,容易造成混淆。在传统编程中,对象是存储值的一块内存,仅此而已。在面向对象编程中,“对象”意味着它既是传统编程意义上的对象,同时又是属性和行为的结合。所以从现在开始,当我们使用术语“对象”时,我们指的是面向对象编程里的“对象”。