1.2.6 面向对象的程序设计(OOP)
面向对象的程序与结构化的程序不同,由C++编写的结构化的程序是由一个个的函数组成的,而由C++编写的面向对象的程序是由一个个的对象组成的,对象之间通过消息而相互作用。
在结构化的程序设计中,我们要解决某一个问题,就是要确定这个问题能够分解为哪些函数,数据能够分解为哪些基本的类型,如int、double等。也就是说,思考方式是面向机器结构的,不是面向问题结构的,需要在问题结构和机器结构之间建立联系。面向对象的程序设计方法的思考方式是面向问题的结构,它认为现实世界是由对象组成的。面向对象的程序设计方法解决某个问题,要确定这个问题是由哪些对象组成的,对象间的相互关系是什么。
纯粹的面向对象程序设计方法如下。
❑所有的东西都是对象。可以将对象想象成为一种新型变量,它保存着数据,而且还可以对自身数据进行操作。
❑程序是一大堆对象的组合。通过消息传递,各对象知道自己应该做些什么。如果需要让对象做些事情,则须向该对象“发送一条消息”。具体来说,可以将消息想象成为一个调用请求,它调用的是从属于目标对象的一个方法。
❑每个对象都有自己的存储空间。可容纳其他对象,或者说通过封装现有的对象,可以产生新型对象。因此,尽管对象的概念非常简单,但是经过封装以后却可以在程序中达到任意高的复杂程度。
❑每个对象都属于某个类。根据语法,每个对象都是某个“类”的一个“实例”。一个类的最重要的特征就是“能将什么消息发给它?”,也就是类本身有哪些操作。