15.1 面向对象编程的基本概念
要理解面向对象的编程,首先要理解什么是对象。在现实世界中,人们所面对的一切事物都可称为对象。一本书、一个人、一架飞机、一只猫等都是实实在在的对象。每本书都会有一个名字、价格、作者等属性,这本书可以出售,也可以借阅。在面向对象的编程的过程中,首先要确定的就是对象,以及各对象之间的相互关系。
假设,在程序中确定了书这一对象,它包括的数据有书名、价格、作者、出版社及出版数量等,在书这个对象上可能进行的操作有查看书的名字(价格、作者、出版社等)、出售这本书或借阅这本书。这个简单的举例说明了在面向对象的编程中,对象是由数据以及在数据上进行的操作组成的。从抽象的角度来看,方法是一个对象所做的动作,而属性是对象的特性。从编程角度来看,方法就是函数,而属性就是变量。面向对象编程的最基本概念包含以下3个特性。
·抽象数据类型和数据封装。
·继承。
·多态。
在程序中,对象的这些属性和操作,被组织成一个个的模块。这种将数据及对数据的操作组成一个模块的编程方法就是数据封装。模块之间相互独立,并且通过各自提供的接口与其他模块之间完成数据通信。这种封装好的数据及对数据的操作,就可以看做一个类。
在实际开发中,有些类与其他类拥有相同的变量和函数。这时,可以定义一个通用的类,包含这些变量和函数。这样,随着需求而增加的新类可以在这个通用类的基础上创建,这一实现叫做继承(Inheritance),所创建的新类称为派生类(Derived class)。通用的类称为基类(Base class)。派生类继承了基类所有的属性和函数,并包含了所有在派生类中定义的属性和函数。
面向对象编程中,通常关注的是一个接口或基类,而不必考虑所属的具体类,这种实现称为多态。