职能只在非
这个问题在这里已经有了答案:
函数是否仅在非面向对象的语言中找到?
没有。有一些面向对象的语言具有功能。 例如,C#是一种面向对象的语言,但它具有匿名功能。
什么是通常在像Java或C#这样的面向对象语言中调用的类型成员的已命名过程?
通常他们被正确地称为方法,尽管这种语言不同。 在Java或C#中,我会说“方法”。
例如,在Visual Basic中,根据函数和子例程是否返回一个值,而不是基于它们是否与一个类型容器相关联,来进行函数和子例程之间的区分。
JavaScript是一种使用原型继承而不是类继承的面向对象语言,通常将上述所有内容称为“函数”。
在随便谈论Java或C#时,人们是否经常将方法称为函数?
是。 如果我编写文档或书籍或学术文章,那么我会小心地作出区分。 按照普遍的说法,虽然每个人都合理地熟悉计算机编程艺术,但将“功能”和“方法”理解为大致同义词。 我不会拒绝你的回答。
任何将其限制为特定语言的答案都是内在的缺陷。 另外你还必须有效地处理静态方法和子程序。
计算机科学始于“ 子程序 ”一词。 可以任意执行以执行共同操作的小部分可重复代码。 早期编程语言(如BASIC)中有示例。
函数是子程序的演变。 他们接受争论,可能会或可能不会返回一个价值。 他们从数学中获取一些概念 - 输入,转换成给定的输出。
对于对象,我们需要能够调用对象的操作,我们这样做是暴露方法 。 像函数一样,它们需要参数,并且可能会返回值或不会返回值。
静态方法被设计用来处理一个类的所有可能的对象。
问题在于,纯粹的面向对象编程没有为函数的定义(或实际上的子例程)留下余地。 演变成面向对象的语言通常会保留函数的语法来实现方法。
在Java中,我们使用'Utility'类来提供public static
方法的功能。 JavaScript中的Math
类是另一个例子。
在PHP中,我们容忍使用word function
来定义方法。
在C ++中,我们既看到了函数和方法,也没有划分界限。 的确,C ++没有提及方法,称它们为成员函数。
函数不绑定到类。
函数就像doStuff();
。
一种方法就像someThing.doStuff();
或SomeClass.doStuff();
。
在Java中,不存在这样的功能。 他们都是方法。 即
class Test {
public static void doSomething() {...}
public void otherThing() {...}
public static void main(String[] args) {
doSomething(); //implied Test.doSomething();
}
public Test() {
otherThing(); //implied this.otherThing();
}
}
链接地址: http://www.djcxy.com/p/17311.html