
メソッドでさらに柔軟な処理を行うことができます。メソッドを呼び出す際に、
呼び出し元からメソッド内に何か情報(値)を渡し、その値に応じた処理を行う
ということができます。メソッドに渡す情報を引数といいます。引数を持つメソッドは、次のような形であらわします。

この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は「型を持たない」という意味です。
クラスの設計と簡単な利用方法について学びました。フィールドとメソッド、オブジェクトの作成方法など理解できたでしょうか?