Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでメソッド呼び出しを引数として別のメソッドに渡す方法

この記事では、メソッド呼び出しを引数として別のメソッドに渡す方法について詳しく解説します。

Javaでは、別のクラスのメソッドを呼び出す際、そのクラスのオブジェクト(インスタンス)を作成するだけでアクセスできます。オブジェクトを生成した後は、オブジェクト参照変数を通じてメソッドを呼び出すことができます。さらに、あるメソッドの戻り値を、そのまま別のメソッドの引数として渡すことも可能です。

以下に具体的な例を示します。

実行例の入力と出力

入力:

Enter two numbers : 2 and 3

出力:

The cube of the sum of two numbers is:
125

アルゴリズム

処理の流れは以下の通りです。

  1. 開始 — プログラムを実行します。
  2. 2つの変数 my_input_1my_input_2 を宣言します。
  3. 2つの数値を受け取り、その合計を返すメソッドを定義します。
  4. 1つの引数を受け取り、それを3回掛けた値(3乗)を返す別のメソッドを定義します。
  5. mainメソッド内でクラスの新しいオブジェクトを生成し、Scannerオブジェクトも作成します。
  6. 数値をあらかじめ定義しておくか、ユーザーに入力してもらうかを選択できます。
  7. 入力が揃ったら、合計の3乗を計算して返すメソッドを呼び出します。
  8. 結果をコンソールに表示します。

例1:ユーザーからの入力を使用する場合

この例では、プロンプトに従ってユーザーが数値を入力します。オンラインのコーディング環境でも実際に試すことができます。

import java.util.Scanner;
public class Main {
   public int my_sum(int a, int b) {
      int sum = a + b;
      return sum;
   }
   public void my_cube(int my_input) {
      int my_result = my_input * my_input * my_input;
      System.out.println(my_result);
   }
   public static void main(String[] args) {
      Main obj = new Main();
      int my_input_1, my_input_2;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A reader object has been defined ");
      System.out.print("Enter the first number : ");
      my_input_1 = my_scanner.nextInt();
      System.out.print("Enter the second number : ");
      my_input_2 = my_scanner.nextInt();
      System.out.println("The cube of the sum of two numbers is: ");
      obj.my_cube(obj.my_sum(my_input_1, my_input_2));
   }
}

出力

Required packages have been imported
A reader object has been defined
Enter the first number : 2
Enter the second number : 3
The cube of the sum of two numbers is:
125

例2:値を事前に定義する場合

この例では、整数値があらかじめコード内で定義されており、その値を読み取ってコンソールに表示します。

public class Main {
   public int my_sum(int a, int b) {
      int sum = a + b;
      return sum;
   }
   public void my_cube(int my_input) {
      int my_result = my_input * my_input * my_input;
      System.out.println(my_result);
   }
   public static void main(String[] args) {
      Main obj = new Main();
      int my_input_1, my_input_2;
      my_input_1 = 3;
      my_input_2 = 2;
      System.out.println("The two number is defined as " +my_input_1 +" and " +my_input_2);
      System.out.println("The cube of the sum of two numbers is: ");
      obj.my_cube(obj.my_sum(my_input_1, my_input_2));
   }
}

出力

The two number is defined as 3 and 2
The cube of the sum of two numbers is:
125

ポイント解説

上記のコードで注目すべきは、次の1行です。

obj.my_cube(obj.my_sum(my_input_1, my_input_2));

ここでは、まず obj.my_sum() が実行され、2つの数値の合計が計算されます。その戻り値が即座に obj.my_cube() の引数として渡され、合計値の3乗が出力されます。このように、メソッドの戻り値を直接別のメソッドの引数として渡すことで、中間変数を省略し、簡潔なコードを書くことができます。

  1. JavaScriptのcall()メソッドで引数を渡す方法をわかりやすく解説

    JavaScript call()メソッドとは?JavaScriptのcall()メソッドを使うと、あるオブジェクト向けに定義した関数を、別のオブジェクトのコンテキストで実行できます。thisの参照先を差し替えることで、同じメソッドを複数のオブジェクト間で再利用できるのが最大のメリットです。call()の特徴は、第1引数にthisとして渡したいオブジェクトを指定し、第2引数以降に関数へ渡す値をカンマ区切りで個別に指定する点です。引数を配列としてまとめて渡すapply()メソッドとの違いは、この部分にあります。サンプルコード以下は、call()メソッドに引数を渡して呼び出す具体例です。<!

  2. JavaのSwingUtilities.invokeLater()メソッドの使い方を徹底解説

    invokeLater()メソッドとはinvokeLater()メソッドは、SwingUtilitiesクラスが提供するstaticメソッドの一つで、AWTイベントディスパッチスレッド(Event Dispatch Thread)上でタスクを非同期に実行するために使用されます。このメソッドはSwingUtilities.invokeAndWait()とよく似た動作をしますが、大きな違いは、処理のリクエストをイベントキューに登録した後、すぐに呼び出し元へ制御を返すという点です。つまり、invokeLater()は引数で渡されたRunnableオブジェクト内のコードブロックの実行完了を待ちません。