协慌网

登录 贡献 社区

方法和函数之间有什么区别?

有人可以在 OOP 上下文中提供方法函数的简单解释吗?

答案

函数是按名称调用的一段代码。它可以传递数据来操作(即参数),并且可以选择性地返回数据(返回值)。传递给函数的所有数据都是显式传递的。

方法是由与对象关联的名称调用的一段代码。在大多数方面,除了两个主要区别外,它与功能相同:

  1. 方法隐式传递调用它的对象。
  2. 方法能够对包含在类中的数据进行操作(记住对象是类的实例 - 类是定义,对象是该数据的实例)。

(这是一个简化的解释,忽略范围问题等)

方法是在一个对象上。
函数独立于对象。

对于 Java,只有方法。
对于 C,只有函数。

对于 C ++,它取决于你是否在课堂上。

'method''function'的面向对象的单词。这就是它的全部内容(即没有真正的区别)。

不幸的是,我认为这里的许多答案都在延续或提出一个复杂而有意义的差异的想法。

真的 - 它没有那么多,只是同一个词的不同的词。

[后期补充]


事实上,正如Brian Neal在对这个问题的评论中指出的那样,C ++ 标准在引用成员函数时从不使用术语 “方法”。有些人可能认为这表明 C ++ 并不是真正的面向对象语言; 但是,我更愿意将其视为一个非常聪明的人群认为没有特别强烈的理由使用不同的术语。