2009-09-10 89 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

是的。消息傳遞是指對象之間的通信,所以任何方法調用都是消息傳遞。