1

如果将执行 return 语句之后的方法或者它只是被视为一个变量,我只是感到困惑。例子:

public boolean onSystemChecked(boolean dubug){
  if(this.isActivated()) {
    return this.ActivateAction();
  } else {
    if(debug) {   
      System.out.println("[Debug] System Off!");
    } 
  }
  return false;
}

this.ActivateAction() 会执行吗?非常感谢你!:)

4

7 回答 7

3

this.ActivateAction() 会执行吗?

是的。

return this.ActivateAction();

相当于

boolean b = this.ActivateAction();
return b;

如果将执行 return 语句之后的方法

this.ActivateAction()不在 return 语句之后,而是 return 语句的一部分。

于 2013-03-18T09:46:58.957 回答
2

this.ActivateAction() 会执行吗?

是的。否则该方法将不知道返回什么!

return 语句首先计算表达式,然后返回该值。当然,对于只有一个 return 语句的 void 方法

return;

没有什么可评价的。

有关详细信息,请参阅Java 语言规范的第14.17 节。

于 2013-03-18T09:46:25.440 回答
1

'return' 实际上返回值,而不是方法。所以方法的目的是处理并提供一个结果,只有在'return'之后才能返回一个值(value = this.ActivateAction()的输出)

于 2013-03-18T09:53:14.413 回答
0

的,它将被执行。它不是在您的return声明之后,而是该return方法的值也将成为return该方法的值。

于 2013-03-18T09:46:30.823 回答
0

是的,this.ActivateAction()将被执行并返回该方法的答案

于 2013-03-18T09:47:51.663 回答
0

是的。 this.ActivateAction()即使是recursive方法调用也会执行并返回最后一个结果。

于 2013-03-18T09:59:41.307 回答
0

'this' 是对当前实例的引用

所以当你写

this.ActivateAction()

您正在使用当前实例来调用方法,因为您的对象不是 null ,因此将调用方法 'ActivateAction'。

调用后,该方法执行并根据其定义返回一些值。

所以无论你是否在它之前写return都没有关系

this.ActivateAction()

将始终使用当前实例并调用“ActivateAction”方法并返回一些值。

现在因为它返回一些值

因此

return this.ActivateAction()

仅表示返回该值,此处的“返回”没有特殊作用。

于 2013-03-18T10:03:50.473 回答