未分類

メソッドの引数

投稿日:

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

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

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

この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

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

関連記事

サンプルイメージ

練習問題(クラスの利用)(前半)

      練習10-1 MarkPrinterMain1~4クラスを実行すると下図の様な実行結果となるようにMarkPrinterクラスを作成してください。 練習10-2 MarkPrinterクラ …

サンプルイメージ

変数

変数のしくみを知る プログラムを実行するとき、いろいろな値を記憶させながら処理をしていきます。例えば ユーザーが入力した数値を画面に出力する というプログラムについて考えてみましょう。まず、数値をどこ …

サンプルイメージ

関係演算子と条件

条件のしくみ これまでのコードは1文ずつ順序よく処理が行われていました。しかし、「場合に応じた処理」を行うことができます。 ゲームのスコアが良かったら・・・→ボーナスステージに行く ゲームのスコアが悪 …

サンプルイメージ

配列のしくみ①

プログラムの中ではたくさんのデータを扱う場合があります。例えば、50体のキャラクターの攻撃力や体力や属性を扱うプログラムを考えてみましょう。 たくさんの変数が登場するので、コードが複雑で読みにくくなり …

サンプルイメージ

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

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