未分類

メソッドの引数

投稿日:

メソッドでさらに柔軟な処理を行うことができます。メソッドを呼び出す際に、

呼び出し元からメソッド内に何か情報(値)を渡し、その値に応じた処理を行う

ということができます。メソッドに渡す情報を引数といいます。引数を持つメソッドは、次のような形であらわします。

このsetZokusei()メソッドは、呼び出し元から呼び出されるときに、char型の値を一つ、メソッド内に渡すように定義したものです。メソッドの()内にある「char z」が引数です。引数zは、このメソッド内だけで使うことができるchar型の変数です。

変数z(引数)は、メソッドが呼び出されたときに準備され、呼び出し元から渡された値が格納されます。

setZokusei()メソッドは、変数zを利用することができ、フィールドzokuseiの値を出力しています。

引数を渡してメソッドを呼び出す

呼び出し文の()の中に、指定しておいた型の値を記述して、メソッドに値を渡します。

このmain()メソッド内では、

setZokusei()メソッドに、値「火」を渡して呼び出す

という処理を行っています。「火」という値は、引数zに格納されます。メソッド内では、zの値をフィールドzokuseiに代入しています。

メソッドで定義されている引数(変数)を仮引数と呼びます。一方、メソッドの呼び出し元から渡される引数(値)を実引数と呼びます。

ここでは、変数zが仮引数、「火」が実引数になります。

異なる値を渡して呼び出す

Sample8_05_4をのmain()メソッド内の2つの文を、書き換えると下記のとおりになります。

同じメソッドを呼び出しても、

渡された実引数の値が異なると、異なる結果となる

ということがわかります。

変数の値を渡して呼び出す

なお、メソッドに渡す実引数の部分には、変数を指定することもできます。

ここでは、メソッドに渡す実引数として、main()メソッド内で宣言した変数zokuを使いました。このように、メソッドに渡す実引数には、変数を使うこともできます。

複数の引数を持つメソッドを定義する

メソッドには2個以上の引数を持たせることができます。

複数の引数を持つメソッドも、これまでと基本は同じです。呼び出すときに複数の引数をカンマ(,)で区切って指定してください。この複数の引数を引数リストと呼ぶこともあります。

区切った順に、実引数の値が仮引数に渡されます。つまり、setZokuTai()メソッドは、次のように値が渡されます。

  • 仮引数   実引数
  •  z  ←  zokuの値
  •  t  ←  taiの値

このメソッドでは、受けとった2つの引数を、代入・出力する処理をしています。

なお、仮引数と異なる数の実引数を渡して呼び出すことはできません。

chara1.setZokuTai(zoku,tai); 仮引数の数にみあった実引数を渡す

chara1.setZokuTai(zoku); この呼び出しは誤り

戻り値のしくみを知る

引数の使い方は理解出来ましたか?

メソッドの呼び出し元に、メソッド本体から特定の情報を返す

という仕組みも、作成することができます。

メソッドから返される情報を、戻り値といいます。複数指定できる引数と違って、戻り値は1つだけです。戻り値を返すには、まず戻す値の「型」をメソッドの定義の中に示しておきます。(①)。メソッドのブロックの中で、returnという文を使って実際に値を返す処理をします(②)。

ここでは、ブロックの最後にreturn文を記述していますが、この文はブロックの中ほどに記述することもできます。return文が処理されたところでその処理が終了しますので、仕組みには気を付けておく必要があります。

38行目でメソッドの戻り値を、呼び出し元のzokuという変数に代入しています。

なお、戻り値は必ず呼び出し元で利用しなくてもかまいません。

戻り値のないメソッドを使う

引数のないメソッドがあったように、戻り値のないメソッドも定義することができます。たとえば、Sample8_06_6の15行目のsetZokuTai()メソッドは、戻り値を持たないメソッドです。

メソッドが戻り値を持たないことを示すためには、戻り値の型としてvoidという型を指定しておきます。voidは「型を持たない」という意味です。

クラスの設計と簡単な利用方法について学びました。フィールドとメソッド、オブジェクトの作成方法など理解できたでしょうか?

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サンプルイメージ

練習問題解答(クラスの機能)

          ここまでは、クラスとその機能を見てきました。次の章では、クラスを実際に活用していく方法を学んでいきましょう。

サンプルイメージ

練習問題(メソッド)解答例

次の章ではクラスのアクセス制限、オーバーロード、コンストラクタについて学んでいきましょう。

サンプルイメージ

練習問題(クラスの機能)

      練習9-1 下図の様な実行結果となるように下のプログラムの空欄を埋めて実行してください。 練習9-2 下記のような実行結果となるようにShohinクラスを作成してください。 練習9-3 下 …

Android 練習問題(タッチイベント)

     以下の様な動作をするアプリを作成してください。 問題2-1 TouchMove 初期表示時 画像上をタップすると画像が半透明で表示される。 画像上をタップしたまま指をスライドさせると画像が移 …

Androidで神経衰弱ゲームつくりました。

       プログラムの解説 14行目のT[ ]はカードをシャッフルする領域です。 Tebanは、プログラムを制御する領域です。  0の時は、1枚目のカードをクリックします。 1の時は、2枚目のカー …