5

我被要求回答这个问题:

如果我想告诉用户有关某个实例变量或方法的详细信息,我应该将 /** 和 */ 的 Javadoc 特定注释符号放在哪里?

我回答说:

在函数声明之上。

答案被拒绝了,原因如下:

函数是非面向对象的语言。方法是正确的名称。

这是真的?

4

3 回答 3

17

函数是否仅在非面向对象语言中存在?

不,有些面向对象的语言具有功能。例如,C# 是一种面向对象的语言,但它具有匿名函数

什么是命名过程,它们是通常在 Java 或 C# 等面向对象语言中调用的类型的成员?

通常它们被正确地称为方法,尽管这因语言而异。在 Java 或 C# 中,我会说“方法”。

例如,在 Visual Basic 中,函数子例程之间的区别是基于它们是否返回值,而不是基于它们是否与类型容器相关联。

JavaScript 是一种面向对象的语言,它使用原型继承而不是类继承,通常将上述所有内容称为“函数”。

人们在随便谈论 Java 或 C# 时是否经常将方法称为函数?

是的。如果我在写文档、书籍或学术文章,那么我会小心区分。尽管每个熟悉计算机编程艺术的人都会将“功能”和“方法”理解为粗略的同义词,但用普通话来说。我不会拒绝你的回答。

于 2013-03-03T18:04:01.820 回答
1

任何将其限制为特定语言的答案本质上都是有缺陷的。此外,您还必须有效地处理静态方法和子例程。

计算机科学始于术语“子程序”。可以任意执行以执行常见操作的可重复代码的小部分。在早期的编程语言(如 BASIC)中可以找到示例。

函数是子程序的演变。它们接受参数,可能会也可能不会返回值。他们从数学中获取一些概念——输入,翻译成给定的输出。

对于对象,我们需要能够对对象调用操作,我们这样做是为了公开方法。像函数一样,它们接受参数并且可能返回值,也可能不返回值。

静态方法旨在作用于类的所有可能对象。

问题是,纯粹的面向对象编程没有为函数(或实际上是子例程)的定义留下任何空间。发展为面向对象的语言通常保留函数的语法来实现方法。

Java中,我们求助于使用“实用程序”类来提供函数作为public static方法。JavaScript 中的Math类是另一个例子。

PHP中,我们容忍使用这个词function来定义方法。

C++中,我们看到了函数和方法,两者都没有界限。事实上,C++ 没有引用方法,将它们称为成员函数

于 2013-03-03T18:02:02.987 回答
0

函数不绑定到类。

函数类似于doStuff();.

方法类似于someThing.doStuff();or SomeClass.doStuff();

在 Java 中,没有函数这样的东西。它们都是方法。IE

    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();
        }
    }
于 2013-03-03T17:49:42.353 回答