Java在返回语句之后执行方法

时间:2013-03-18 09:44:57

标签: java 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()?非常感谢你! :)

7 个答案:

答案 0 :(得分:3)

  

是否会执行this.ActivateAction()?

是。

return this.ActivateAction();

相当于

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

如果返回语句后的方法将被执行

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

答案 1 :(得分:2)

  

是否会执行this.ActivateAction()?

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

return语句首先计算表达式,然后返回该值。当然,对于只有返回语句

的void方法
return;

无需评估。

有关详细信息,请参阅14.17 of the Java Language Specification部分。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

,它将被执行。不是在您的return语句之后,而是该方法的return值也将是此方法的return值。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

所以写的时候

this.ActivateAction()

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

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

所以你是否在它之前写回报并不重要

this.ActivateAction()

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

现在因为它返回了一些值

因此

return this.ActivateAction()

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