天天看点

other:方法(method)和函数(function)有什么区别?

1.这就好比从动物学的角度看,动物有公母之分。

比如母狗、母狮、母猴。但是在人类社会中,我们用了男、女,比如女人,而不是母人。

其实公母和男女是一个意思。在不同场合叫法不同而已。因为有时候,我们研究人的时候会忽略它的人的属性,考虑它的动物属性。典型的,我们说雌性激素,我们不说女性激素。

2.在类型语言中(如:C#,Java)叫方法,在弱类型语言中(如:javascript,vbscript)叫函数,没有严格区分

3.一个东西,用对象调用的叫方法,直接调函数名的叫函数

4.c语言等语言里叫函数,面向对象编程,函数写到类里边就叫做方法,函数可以直接调用,对象中的方法一般都有指针this指向它,但是有时一些方法实在不需要写到类里边,所以面向对象的语言有了静态方法,不过这个概念没必要纠结,用的多了自然就明白啦

5.函数Function, 过程Procedure, 方法Method,你可以简单把他们当成同一个概念:都是由若干语句组成的一个可执行代码体。

6.函数是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。

7.所有传递给函数的数据都是显式传递的。

8.方法也是一段代码,也通过名字来进行调用,但它跟一个对象相关联。方法和函数大致上是相同的,但有两个主要的不同之处:

9.方法中的数据是隐式传递的;

10.方法可以操作类内部的数据(请记住,对象是类的实例化–类定义了一个数据类型,而对象是该数据类型的一个实例化)

以上只是简略的解释,忽略了作用域之类的问题。

Raffi Khatchadourian 对 Andrew Edgecombe 答案的补充:

对于 1),你应当再加上“ 方法在 C++ 中是被称为成员函数”。因此,在 C++ 中的“方法”和“函数”的区别,就是“成员函数”和“函数”的区别。此外,诸如 Java 一类的编程语言只有“方法”。所以这时候就是“静态方法”和“方法”直接的区别。

对于2),你应当补上方法可以操作已在类中声明的私有实例(成员)数据。其他代码都可以访问公共实例数据。

15.Aaron 的回答:

方法和对象相关;

函数和对象无关。

Java中只有方法,C中只有函数,而C++里取决于是否在类中。

原文链接:http://blog.jobbole.com/44230/

继续阅读