fpe*_*fpe 12 java methods function
我刚刚决定将我的MATLAB编程技巧与更加一致和严格的Java编码相结合.因此,我希望这不是一个太天真的问题.
我想知道Java是否有任何真正的原因可以像其他许多程序语言那样引用函数methods
而不是函数functions
.
是因为内部OOP
Java的性质与程序语言相比C/C++
如何?还是有其他重要(或微妙)原因?
提前致谢.
方法和函数之间有一点区别。
函数只是一个代码,您可以随时通过其名称调用它,您可以将参数也称为参数传递给它,您还可以从任何函数中获取结果,即函数的返回值。
但是方法是一种代码,它以其名称调用,但它与任何对象相关联。您也可以将参数传递给方法,也可以从方法中获取一些返回值,但问题是它们将始终与某些对象相关联。
已编辑
Java是面向对象的,在大多数情况下,Java 代码不能在没有类的情况下运行,但是在 C++ 中,您可以在没有类的情况下运行代码。因此,在 Java 中会有类,代码将编写在类中,因此它们被称为方法而不是函数,因为它们将与对象相关联。
但是在 C++ 中,您可以拥有一些可以通过显式传递值来调用的函数。
简单来说,方法是与对象相关的函数。
在我看来这个图http://www.jot.fm/issues/issue_2008_03/article4/images/figure2.gif
来自http://www.jot.fm/issues/issue_2008_03/article4/ 有助于理解面向对象和过程编程之间的主要区别之一。基本上的想法是
过程编程仅提供一个维度来将计算单元与名称相关联。这里,过程调用或名称直接映射到过程实现。在图a中,调用m1别无选择,只能调用过程m1的唯一实现
尽管
面向对象编程为过程编程增加了名称解析的另一个维度。除了方法或过程名称之外,消息调度在查找方法时还会考虑消息接收者。在图 2b 中,我们看到方法 m1 的两种实现。选择合适的方法不仅取决于消息名称m1,还取决于实际消息的接收者,这里是Ry
图(c)的第三部分指的是面向主题的编程,其中对象的行为(被调用的方法)不仅取决于对象状态,还取决于调用(或观察)它的主体。但这实际上超出了您的问题范围。