UML基础与Rose建模实用教程(第三版)
上QQ阅读APP看书,第一时间看更新

1.1.1 什么是对象

对象(Object)是面向对象(Object-Oriented,OO)系统的基本构造块,是一些相关的变量和方法(Method)的软件集。对象经常用于建立对现实世界中我们身边的一些物体或事物的模型。对象是理解面向对象技术的关键。

我们可以看看现实生活中的物体或事物(Object这个单词本来就有“物体、物品”的意思),比如教室里面的桌子、椅子、电脑等,我们都可以把它们认定为对象(Object)。根据《韦氏大词典》(Merriam-Webster’s Collegiate Dictionary)的词典释义,对象是:

(1)某种可为人感知的事物。

(2)思维、感觉或动作所能作用的物质或精神体。

该释义的第一部分“某种可为人感知的事物”便指的就是我们熟悉的“对象”。它是可以看到和感知到的“东西”,而且可以占据一定事物的空间。这个释义或许让我们感觉这是在上哲学课。现在,让我们以图书管理系统为例,解释一下这个释义的第一部分。我们想象一下图书管理系统中围绕图书管理这个概念应该有哪些物理对象:

  • 到图书馆借书的学生。
  • 管理借阅的老师。
  • 管理图书信息的计算机。
  • 借阅的图书。
  • 存放图书的书架。
  • 图书馆这个建筑物。

在图书馆这个地方还可以找到很多的对象,但是这些对象并不都是我们所要创建的图书管理系统所必须的。不过,现在不用担心这个,在使用用例进行需求分析时,我们会进行详细的讲解。

释义的第二部分是“思维、感觉或动作所能作用的物质或精神体”,也就是我们所说的“概念性对象”,我们还以图书管理系统为例,可以列举出:

  • 学生所在的院系。
  • 学生的学号。
  • 图书的编号。

这些概念性的对象不具有直接的具象,不能像物理事物那样能直接看到、听到或触摸到,但是它们在描述抽象模型和物理对象时,仍然起着非常重要的作用。

软件对象可以这样定义:软件对象是一种将状态和行为有机地结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。

我们可以用软件对象来代表现实世界中的对象,例如用一个动画程序来代表现实世界中正在飞行的飞机,或者用可以控制虚拟电子机械的程序来代表现实世界运行的机械车。同样,我们可以用软件对象来代表一个抽象的概念,比如,按键事件就是一个用于GUI窗口系统的公共对象,它可以代表用户按下鼠标按钮或者键盘按键所触发的事件。