从今天开始我们将与你一起学习面向对象的程序设计,语言方面我们选择的C++。如果说C语言的灵魂是指针的话,那么C++的灵魂则是抽象。在面向过程的程序设计中我们常常说:
程序 = 数据结构 + 算法
而在面向对象的程序设计中则说:
程序 = 抽象 + 设计模式
而在这个系列中我们将一起从零学起面向对象的程序设计思想,逐步用C++实现来实现面向对象的程序。最后我们将进入设计模式系列,了解并掌握每一个精典的设计有什么优点,适用于什么场景,能够为我们解决哪一类问题。
现在我们先来简单介绍一下什么叫作程序设计中的抽象。所谓的抽象就表示这是一类事物的统称,这类事物有着一些共性,而每一个个体可能都有着特性。举例来说,比如我们提到公共汽车,就可以将其抽象成一个类bus。而对于任何一种公交车都具有同一种功能:载客。实际上属于bus类的实物有很多,比如不同载客数量的公交车,不同线路的公交车,不同牌子的公交车等等。我们称某一个类下的实际事物为类的对象。对于公交类bus它有两个属性:载客数和路线,它们叫做这个类的成员变量,因为所有的公交车都具有这两个属性,并且它们的数值可能不同,也就是变化的。而bus类还有两个功能:按线路行驶和到站停车,这两个动作称为类的成员方法。对于所有公交车都具有这两个功能。
而对于这一个bus类来说我们并不能直接对其操作,因为这只是一个用于描述事物特性的一个抽象,而不是实际事物。想要使用bus类我们就必需为这个类定义其实际的对象,例如:
Bus bus2