1.1.3 面向对象的概念
1.对象
简单定义可以是:“展示一些定义好行为的、有形的实体。”
以黑板为例:有明确边界、有形的、可见的实体;具有预先定义好的用途;可以讲课用,练习粉笔字等。但,对象也包括:机构、组织、单位等没有物理上的边界,却具有一个概念上的边界,是客观存在的,也称为对象。
根据面向对象方法的倡导者Grady Booch的理论,对象具有下列特性:
(1)具有一种状态。通过一系列属性和它们的值来表示;
(2)可以展示一种行为。行为是指在一定的期间内属性的改变;
(3)具有唯一的标识。每一个对象都有唯一的标识。即便是孪生兄弟或姐妹也不例外。
因此,可以认为对象是具有某些特殊属性(数据)和行为方式(方法)的实体。可以是有生命的个体,比如一个人或一只老虎。也可以是无生命的个体,比如一辆汽车或一台计算机。也可以是一个抽象的概念,如天气的变化或鼠标所产生的事件。
对象有两个特征:属性(Property)和行为(Behavior)。如:一个人的属性有:姓名、性别、年龄、身高、体重等,行为有:唱歌、踢球、骑车、学习等。
2.消息
单一对象的存在并没有多大的作用,只有多个对象相互作用才会完成复杂的行为。对象和对象之间是通过传递消息来完成相互通信的。
一个消息由三方面内容组成:
(1)消息的接收者,即消息的目标对象;
(2)接收对象采用的方法;
(3)执行方法所需用的参数(Parameters)。
例如:一辆自行车放在车棚中并没有什么用,当我们人骑上它,并加速时才体现它的作用,其中接收者(自行车),采用的方法(加速),所需的参数(上升到更高的档位)。
3.类
具有共同属性和行为的一系列对象。世界充满了对象,有意识地识别周围的对象并将它们分类是一件有意义的事情。
面向对象方法将系统看作是现实世界对象的集合。对象代表一个实体,该实体有一个标识并展示一定数量的属性和行为。对一系列类似对象的共同的属性和行为的描述构成了类。一个系统可以包含任意数量的对象和类。面向对象的系统可以很容易地升级以反映系统的变化和扩展。
现在,软件开发中使用面向对象方法来代替过程方法是历史发展的必然趋势。面向对象方法提高了软件系统的稳定性,因为它包含规模和复杂度可变的问题领域。
4.类与对象的关系
面向对象方法将系统看作是现实世界对象的集合。
面向对象系统是以类为基础的。一系列拥有共同属性和行为的对象可以归为一类。属性代表类的特性。行为代表可以由类来完成的操作。如:考虑一个叫“交通工具”的类。该类的属性有交通工具的构造、颜色、发动机能量(来源)等。类的行为有:启动、行驶、加速、停止。
对象是类的一个实例,它提供了类的属性和行为。比如:本田摩托车是交通工具类的一个对象。类与对象的关系如图1-2所示:
图1-2 类与对象的关系图