4.10 有关对象的思考:确定类的行为
第2章和第3章 有关对象的思考 一节完成了电梯模拟程序面向对象设计的前两步,即确定实现电梯模拟程序的类和这些类的属性。
本节要确定实现电梯模拟程序所需的类行为。第5章将介绍这些类对象之间的交互。
下面要考虑一些实际类对象的行为。收音机的行为包括可以选台和设置音量。汽车的行为包括加速(按油门板)和减速(按制动闸)。
可以看出,对象通常不是自动做出行为,而是在向对象发出消息(message)时调用特定行为,这个消息表示对象要做出特定行为。这很像函数调用,C++中就是这样向对象发出消息的。
电梯实验宣任务 3
1.继续处理第3章生成的事实文件。其中将文件分成两组事实,第一组是属性,第二组是其他事实。
2.对每个数,加进第三个组,称为 行为。用该组存放类的每个行为,对象调用这些行为来做某件事(即通过向对象发出消息)。例如,人可以单击按钮,因此将 pushButton 列为按钮类的行为。函数 pnshButton 和按钮类的其他行为称为成员函数(member function)或方法(method)。类的属性(如按钮 开 或 关)通常称为按钮类的数据成员(data member)。
类的成员函数通常操作类的数据成员(如 pushBuuon 改变按钮的属性为 开)。成员函数通常还向其他类的对象发送消息(例如按钮对象向电梯发送comeGetMe消息)。假设某人按按钮时电梯的按钮亮灯,电梯到达某一层时,电梯要发送 resetButton 消息以关掉按钮的灯。电梯可能要确定某个按钮有没有按下,因此要用getButton行为检查按钮,返回1和0分别表示按钮“开”或”关”。可能要让电梯门响应消息 openDoor 和 closeDoor 等等。
3. 对类指定的每个行为,简要介绍这个行为的作用。列出行为导致的属性改变,列出行为向其他类的对象发送的消息。
说明
- 首先列出问题陈述中提到的类属性,然后列出问题陈述中隐含的类属性。
- 在需要时增加相应的行为。
- 系统设计不是完善和完整的过程,只要尽力而为,后面几章的练习会介绍如何修改。
- 这个阶段很难看出所有行为,第5章练习中可能还要增加新的行为。