在面向对象系统中,对象间的相互作用是通过一个对象向另一个对象发送消息的方式来体现的。
在面向对象的程序中,消息就是数据成员及成员方法的引用。
1 消息的概念
在面向对象的系统中,把“请求”或“命令”抽象成“消息”,对象之间的联系是通过消息传递来实现的。
当系统中的其他对象请求这个对象执行某个服务时,它就响应这个请求,完成指定的服务。
通常,我们把发送消息的对象称为发送者,把接收消息的对象称为接收者。
对象间的联系,只能通过消息传递来进行。
对象也只有在收到消息时,才被激活,去完成消息要求的功能。
消息就是向对象发出服务请求,是对数据成员和成员方法的引用。
它应该含有下述信息:
提供服务的对象标识 - 对象名
服务标识 - 方法名
输入信息 - 实际参数
回答信息 - 返回值或操作结果
消息具有三个性质:
同一对象可接收不同形式的多个消息,产生不同的响应。
相同形式的消息可以发送给不同对象,所做出的响应可以是截然不同的。
消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必须的。
2 公有消息和私有消息
在面向对象系统中,消息分为两类:公有消息和私有消息。
当有一批消息同属于一个对象时:由外界对象直接发送给这个对象的消息称为公有消息;对象自己发送给本身的消息称为私有消息。
私有消息对外是不开放的,外界不必了解它。
外界对象只能向此对象发送公有消息,而不能发送私有消息,私有消息是由对象自身发送的。
3 特定于对象的消息
将所有能支持此对象可接收消息的方法集中在一起,形成一个大消息,成为特定于对象的消息。
这些消息让对象执行这个方法而不管它可能做什么及怎么做。
特定于对象的消息可分为三种类型:
可以返回对象内部状态的消息。
可以改变对象内部状态的消息。
可以做一些特定操作,改变系统状态的消息。