9.1.1 面向对象的技术的由来
9.1.2 基本概念
可以这样认为:“面向对象=对象+类+继承+通信。”如果一个软件系统是使用这样四个概念来设计和实现的,我们认为这个软件系统是面向对象的。
对象(object)
对象是面向对象开发方法的基本成分。每个对象可用它本身的一组属性和其上的一组操作来定义。对象可以是现实生活中的一个物理对象,还可以是某一类概念实体的实例。比如,一辆汽车、一个人、一本书,乃至一种语言、一个图形、一种管理方式,都可以作为一个对象。
从分析和设计的角度来看,对象表示了一种概念,它们把有关的现实世界的实体模型化。实体的有关声明有:描述实体,包括实体的属性和可以执行的操作。比如对于汽车这个对象,它的重量、颜色都可以作为对象的属性,它可以执行的操作可以是行驶、鸣笛等。
类(class)
类是一组具有相同数据结构和相同操作的对象的集合。类是对一系列具有相同性质的对象的抽象,是对对象共同特征的描述。比如每一辆汽车是一个对象的话,所有的汽车都可以作为一个模板,我们就定义汽车这个类。
在一个类中,每个对象都是类的实例,可以使用类中提供的方法。从类定义中产生对象,必须有建立实例的操作,C++和C#中的new操作符可用于建立一个类的实例,C#为我们提供的方法则更安全。
继承(inheritance)
继承是使用已存在的定义作为基础建立新定义的技术。新类的定义可以是即存类所声明的数据和新类所增加的声明组合。新类复用即存在的定义,而不要求修改即存类。即存类可以作为基类来引用,而新类可以作为派生类来引用。这种复用技术大大降低了软件的开发费用。
例如,汽车作为一个类已经存在,作为具有自身特征的卡车就可以从汽车类中继承。它同汽车一样,具有颜色、重量这些特征,可以行驶和鸣笛。它还具有一般汽车不一定具备的特征,比如可以载货等。