Google検索エンジン

トップページ » Java複数クラス入門 » クラス間でメソッドの戻り値を受け渡しする方法


クラス間でメソッドの戻り値を受け渡しする方法

  • メソッドの戻り値とは?

    メソッドの戻り値とは、メソッドで処理をした結果として返す値のことです。 メソッドが戻り値を返すには、「String method()」のように戻り値として返すデータ型を指定し、メソッド内にreturn文を記述して戻り値を返してやる必要があります。

    コンストラクタとは異なりメソッドは戻り値を返すことができますので、戻り値を有効に活用できると便利です。 引数をとるメソッドを呼び出して、その戻り値を取得すると、メソッド内の処理結果よって様々な振る舞いをさせることができます。

    メソッドの基本は、メソッド入門でご確認いただけます。




    クラス間でメソッドの戻り値を受け渡しする

    クラス間でメソッドの戻り値を受け渡して、呼び出し元に表示してみましょう。 以下のサンプルソースコードをコンパイルして、実行してみてください。

    サンプルソースコード
    class sampleA {
       public static void main(String args[]) {
          int num = 2;
    
          // インスタンス化
          sampleB obj = new sampleB();
    
          int num1 = obj.method( num );
          System.out.println("1回目:" + num1);
    
          int num2 = obj.method( num );
          System.out.println("2回目:" + num2);
    
          int num3 = obj.method( num );
          System.out.println("3回目:" + num3);
       }
    }
    
    class sampleB {
       int test = 0;
       int method(int num){
          test = test + num;
          return test;
       }
    }
    

    まず、「sampleA」クラスで「sampleB」クラスをインスタンス化し、「method」を呼び出しています。 次に、「sampleB」クラスの「method」で、引数に指定した数を加算して、結果を戻り値として返します。 最後に、「method」の戻り値を「sampleA」で変数に代入して表示しています。

    なお、戻り値として返せるのは、1種類の型、1つのオブジェクトのみです。 複数の値を返す方法としては、配列に格納するか、セッター・ゲッターを利用する方法があります。



    複数の戻り値を返す方法 セッターとゲッターについて

    以下にセッター・ゲッターの簡単な例を挙げます。

    サンプルソースコード
    class sampleA {
       public static void main(String args[]) {
          int num = 0;
          sampleB obj = new sampleB();
    
          obj.setValue( num );
          int valA = obj.getValueA();
          int valB = obj.getValueB();
          int valC = obj.getValueC();
    
          System.out.println(valA);
          System.out.println(valB);
          System.out.println(valC);
       }
    }
    
    class sampleB {
       int testA = 0;
       int testB = 0;
       int testC = 0;
       void setValue(int num){
          testA = num + 1;
          testB = num + 2;
          testC = num + 3;
       }
       int getValueA(){
          return testA;
       }
       int getValueB(){
          return testB;
       }
       int getValueC(){
          return testC;
       }
    }
    

    サンプルプログラムでは、「setValue」を呼び出して値を設定すると、sampleBのクラス変数「testA、testB、testC」が処理結果を保持する仕組みになっています。 必要に応じて、sampleBクラスの「getValue」メソッドを呼び出して、処理結果を取得することができます。




Java複数クラス入門
コミックの紹介