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

はい。 this.ActivateAction()メソッド呼び出しであっても実行されrecursive、最後の結果が返されます。

于 2013-03-18T09:59:41.307 に答える
0

「this」は現在のインスタンスへの参照です

だからあなたが書くとき

this.ActivateAction()

現在のインスタンスを使用してメソッドを呼び出しています。オブジェクトが null ではないため、メソッド 'ActivateAction' が呼び出されます。

呼び出し後、メソッドが実行され、その定義に従って何らかの値が返されます。

その前に return を書くかどうかは問題ではありません。

this.ActivateAction()

常に現在のインスタンスを使用し、「ActivateAction」メソッドを呼び出して何らかの値を返します。

今は何らかの値を返すので

したがって

return this.ActivateAction()

その値を返すことのみを意味し、ここでの「return」には特別な役割はありません。

于 2013-03-18T10:03:50.473 に答える
0

はい、this.ActivateAction()実行され、そのメソッドの応答が返されます

于 2013-03-18T09:47:51.663 に答える
0

はい、実行されます。returnステートメントの後ではなく、returnそのメソッドのreturn値がこのメソッドの値にもなります。

于 2013-03-18T09:46:30.823 に答える