消息由三部分组成:消息名称、消息接收者和消息响应。
消息是对象之间的通信机制。确切地说,当对象A调用对象B的方法时,对象A就发送消息给对象B。对象B的响应是由它对应方法的返回值定义的。消息实际上就是调用另一个对象的公有方法。对象A可以直接调用B的方法,如:int bookCount = B.getCount();对象A也可以间接调用B的方法,如:int bookCount = getBookCount(B){int bookCount = B.getCount();},间接调用就是对直接调用进行一次包装,因为直接调用的方法名不能准确表达消息的用意,getCount,是什么东西的数量?间接调用就很明确的表达了意思:getBookCounat,是书的数量。有时候,一个消息要发送给多个对象,这时候,就可以用间接调用方法的方式,具体实现就是,编写一个方法,在这个方法里对需要发送消息的对象群进行直接调用或间接调用。所以,发送消息的实现可以有两种方式:直接调用另一个对象的方法和间接调用另一个对象的方法。这两种方法的一个形式上的区别是:前者是另一个对象的方法,后者是自己内部的方法。
另外,注意的是:有消息,就有响应,消息和响应是一对一的。响应可以通过方法的返回值来得到,虽然有些方法没有返回值,即返回值是void,但并不表明没有响应,其实在调用返回值是void的方法时,就默认该方法能成功执行,也就是说该方法的返回值是true,响应就是:已经成功执行完毕。
命令和请求其实也是消息,他们是消息的一种。A命令B做干某件事,A请求B做某件事,都是需要B去执行它的方法。