未分類

メソッドの引数

投稿日:

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

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

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

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

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

関連記事

サンプルイメージ

はじめてのAndroidアプリ作成

     文字列を描画するプログラムを作り解説します。 ソースコードの追加 ソースコードを追加する手順は次の通りです。今回は、「StringEx」と「StringView」の2つを追加します。 ①プロ …

サンプルイメージ

List、Mapインターフェイス

     ArrayListとは、配列とよく似ています。値の集合を扱うときに利用します。 リストは要素が追加された順番を保持します。又重複した要素もそのまま保持することができます。 下記のコードでは、 …

サンプルイメージ

練習問題(メソッド)

練習8-1 下記の2つのクラスがある。[WelcomeMain1.java]を実行すると下のような結果になるように[Welcome1.java]の空欄を埋めてください。        練習8-2 下記 …

サンプルイメージ

キーボードからの入力

キーボードからいろいろな文字を入力させ、その値を出力するコードを記述してみましょう。 String str = br.readLine(); という部分が重要です。実行画面がユーザーからの入力を待つ状 …

サンプルイメージ

関係演算子と条件

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