如果返回语句之后的方法将被执行或者只是作为变量看到,我感到很困惑。 例如:
public boolean onSystemChecked(boolean dubug){
if(this.isActivated()) {
return this.ActivateAction();
} else {
if(debug) {
System.out.println("[Debug] System Off!");
}
}
return false;
}
是否会执行this.ActivateAction()?非常感谢你! :)
答案 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()
仅表示返回该值,“返回”此处没有特殊作用。