Are functions only in non-object-oriented languages?
我被要求回答这个问题:
Where should I put the Javadoc specific comment notation of /** and */
if I want to tell the user specifics about a certain instance variable
or method?
我的回答是:
Above the function declaration.
答案被拒绝,原因如下:
Functions are in non-object-oriented languages. Method is the proper name.
这是真的吗?
Are functions found only in non-object-oriented languages?
没有。有面向对象的语言有函数。例如,C是一种面向对象的语言,但它有匿名函数。
What are the named procedures which are members of a type typically called in object-oriented languages like Java or C#?
通常,它们被正确地称为方法,尽管不同语言的方法不同。在Java或C语言中,我会说"方法"。
例如,在VisualBasic中,函数和子例程之间的区别是基于它们是否返回值,而不是基于它们是否与类型容器关联。
JavaScript是一种面向对象的语言,它使用原型继承而不是类继承,通常将上述所有内容都称为"函数"。
Do people frequently refer to methods as functions when speaking casually about Java or C#?
对。如果我写文档、书籍或学术文章,那么我会小心区分。一般来说,虽然每个合理熟悉计算机编程艺术的人都会把"函数"和"方法"理解为大致的同义词。我不会拒绝你的回答。
任何限制这一特定语言的回答都是固有的缺陷。此外,还必须有效地处理静态方法和子例程。
计算机科学从术语"子程序"开始。可重复代码的一小部分,可以任意执行以执行公共操作。在早期的编程语言(如BASIC)中可以找到示例。
函数是子程序的演化。它们接受参数,可能返回值,也可能不返回值。他们从数学输入中提取一些概念,并将其翻译成给定的输出。
对于对象,我们需要能够调用对象上的操作,我们这样做就是公开方法。像函数一样,它们接受参数,可能返回值,也可能不返回值。
静态方法被设计为作用于类中所有可能的对象。
问题是,纯面向对象编程没有为函数(或者实际上是子例程)的定义留下任何范围。而进化为面向对象的语言通常保留了从函数到实现方法的语法。
在Java中,我们求助于使用"实用工具"类来提供EDCOX1和3种方法的功能。javascript中的
在PHP中,我们允许使用
在C++中,我们既看到函数和方法,也没有划定。实际上,C++不引用方法,称之为成员函数。
函数未绑定到类。
函数类似于
一种方法类似于
在爪哇,没有这样的功能。它们都是方法。即
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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(); } } |