在面向對象系統中,對象間的相互作用是通過一個對象向另一個對象發送消息的方式來體現的。
在面向對象的程序中,消息就是數據成員及成員方法的引用。
1 消息的概念
在面向對象的系統中,把“請求”或“命令”抽象成“消息”,對象之間的聯系是通過消息傳遞來實現的。
當系統中的其他對象請求這個對象執行某個服務時,它就響應這個請求,完成指定的服務。
通常,我們把發送消息的對象稱為發送者,把接收消息的對象稱為接收者。
對象間的聯系,只能通過消息傳遞來進行。
對象也只有在收到消息時,才被激活,去完成消息要求的功能。
消息就是向對象發出服務請求,是對數據成員和成員方法的引用。
它應該含有下述信息:
提供服務的對象標識 - 對象名
服務標識 - 方法名
輸入信息 - 實際參數
回答信息 - 返回值或操作結果
消息具有三個性質:
同一對象可接收不同形式的多個消息,產生不同的響應。
相同形式的消息可以發送給不同對象,所做出的響應可以是截然不同的。
消息的發送可以不考慮具體的接收者,對象可以響應消息,也可以對消息不予理會,對消息的響應并不是必須的。
2 公有消息和私有消息
在面向對象系統中,消息分為兩類:公有消息和私有消息。
當有一批消息同屬于一個對象時:由外界對象直接發送給這個對象的消息稱為公有消息;對象自己發送給本身的消息稱為私有消息。
私有消息對外是不開放的,外界不必了解它。
外界對象只能向此對象發送公有消息,而不能發送私有消息,私有消息是由對象自身發送的。
3 特定于對象的消息
將所有能支持此對象可接收消息的方法集中在一起,形成一個大消息,成為特定于對象的消息。
這些消息讓對象執行這個方法而不管它可能做什么及怎么做。
特定于對象的消息可分為三種類型:
可以返回對象內部狀態的消息。
可以改變對象內部狀態的消息。
可以做一些特定操作,改變系統狀態的消息。