Answers:
很难找到一个确定的答案,但是第一种将事物称为方法的语言似乎是Simula,尽管这很可能是错误的或可追溯的。鉴于函数(来自数学)和过程(也来自数学)以编程语言显示,我能想到的最好的是“方法”是“方法论”的简写形式。
所有这些都是子程序,它们构成了计算机程序的代码。我以为选择“方法”是因为OOP风格编程的思想是尽可能重用代码。因此,您可以有一个过程,但有一种方法可以使它更加清楚地表明它是一种新的工作方式。老实说,我已经知道调用方法函数,并且听说过称为方法的函数。
void
。C ++成员函数与普通函数非常相似(与Simula不同)-具有隐式this
参数,并且(可能)运行时分配机制并不会真正改变您要处理的内容。我不知道C是否首先将函数和过程视为同一事物,但是Pascal(一种较新的语言)具有function
和procedure
关键字-尽管是IIRC,但Pascal函数可能会产生副作用。
数十年来,我一直在寻找有关此方面的信息。到目前为止,我的猜测是该术语是从数值计算的特殊子字段引入Simula的,在该子字段中,通常将实现函数的特定算法(例如,特征值或其他)称为方法。这是因为您可能会采用各种折衷方法,使用各种不同的数值方法来计算同一数学函数。在OOP中,由于方法的重载,您可能为类适当地实现了“相同”功能-例如,对于Circle和Rectangle来说,area的实现都不同,它们都是Shapes,具有一个Area。这似乎是对传统数值方法概念的合理扩展。
在OOP历史上,我对这个词的词源一无所知。但我知道这不是推论(可推论)。一个更好的术语(一个更演绎术语或MDT)可能是反应或行动
具有REAL BASIC,VBx和VB.net背景的程序员都知道两种类型的方法声明“ FUNCTION”和“ SUB”。BASIC系列语言允许使用“ FUNCTION”关键字和“ SUB”关键字声明函数。两者之间的区别在于,“ FUNCTION”可以返回或不会返回值,而作为“ SUB”仅执行代码而不会返回任何值。但是随着OO概念的出现,术语sub和function开始作为方法互换使用。