2009-09-10 92 views
2

调用没有输入的函数时是否发生消息传递?消息传递需要输入吗?

即具有:object.toString();

我是否传递消息为 'object'?

这可能会因语言而异,但我特指Java。

回答

1

yes和no ...... 消息传递是一种模式 ...唯一的语言,我个人知道,实际上使用这些语义是Smalltalk和Objective-C的...所以是的,在这个意义上,object.method()是这么多的消息传递为object.method(param_1,param_2,...param_n) ...没有,因为object.method(param_1,param_2,...param_n)表示:

  1. 查找在object
  2. 援引method的函数指针函数传递object以及param_1,...,param_n

这绝对捕获了​​消息传递的语义,但最终,这是一个简单的函数调用,正如您从过程编程中所了解的那样...参数的数量既不会改变模型的语义,也不会改变实现。 ..实际呼叫的参数列表只包含object ...

3

是的。消息传递是指对象之间的通信,所以任何方法调用都是消息传递。