职能只在非

这个问题在这里已经有了答案:

  • 方法和函数之间的区别33答案

  • 函数是否仅在非面向对象的语言中找到?

    没有。有一些面向对象的语言具有功能。 例如,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

    上一篇: Are functions only in non

    下一篇: Java's methods vs. functions