方法可以返回值吗?

时间:2014-10-04 00:27:56

标签: java return

我认为只有函数有返回语句,因为它们是显式调用的,而方法是在类上隐式调用的。但是,我已经看到了一个代码示例,其中一个方法有一个return语句。这是传统的吗?另外,我错误地说只有函数返回值,并且返回语句的方法是跨OOP语言的多种语言的标准约定吗?

4 个答案:

答案 0 :(得分:2)

方法是与对象(或类)关联的函数。所以,是的,他们可以返回值,不是。

另外 - 自己尝试和/或阅读文档是一种更好的学习方式,而不是一旦遇到问题就问我们! ;)

Here is Oracle's documentation用于定义方法。

答案 1 :(得分:0)

该帖子包含错误的假设。对于初学者来说,Java 具有"methods(在此上下文中),即使是静态的。鉴于此,Java 中的常规方法可以返回一个值。

现在,作为示例 1 ,对于与VB.NET(源自BASIC)等语言的等效性,

返回值的方法是“函数过程”(BASIC术语) - 这些方法返回一个值,然后可以用作适当类型的表达式。它们必须在所有可能的代码执行路径上包含return语句。

具有void返回类型的方法是“子过程”(BASIC术语) - 这些方法不会(也不能)返回值。这些方法只能称为语句。

1 术语"function", "procedure", and "subroutine",例如,高度依赖于语言/上下文,这就是为什么上面的原因。因此,正确的Java术语规定使用“方法[在完成时返回一些值]”和“无效方法”来描述差异 - 尽管我发现“功能”在描述操作时仍然通俗地(在我的圈子中)使用“计算没有副作用的值”或者当它作为高阶参数提供时(例如lambdas)。

答案 2 :(得分:0)

我认为这是理论问题。让我说清楚一些观点。

在OOP之前

  • 程序是一些用于做某事的程序
  • 函数是一些用于执行某些操作和返回值的程序,如Math f(x)= x * y + E2

OOP之后

  • 过程和函数称为方法,如果它们返回或不返回某些值则相等。

PD:我们也有方法:

  • with firm:function A(b,x){...}
  • 没有坚定:功能A(){...}
  • anoimate:function(){...}

答案 3 :(得分:0)

只要返回类型不为void,方法就可以有return语句。定义方法时,可以使方法为public或private,static或not static,选择返回类型(byte,short,int,long,float,double,boolean,char),命名方法,并定义输入

 `public static returnType methodName(input) {
  // body
  }`