KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

プログラム

引き数・戻り値

【はじめに】

今回扱うのは、メソッドの引数・戻り値です。
メソッドを一度学習したけど、いまひとつピンと来ないという方に読んでいただければ幸いです。

メソッドを使う上で欠かせない考え方ですので、ぜひイメージできるようにしていきましょう。

※前提として

オブジェクト指向のインスタンス化を把握している、mainメソッドからクラスをインスタンス化し使用するイメージができる方を対象としています。

【参考記事】https://www.kenschool.jp/blog/?p=3553

【結論】

  • メソッドはオブジェクトの持つ処理・機能
  • 引数はメソッドを使うために必要なデータ
  • 戻り値はメソッドの処理を行うと返してくれるデータ

この後自動販売機を使用する例では

販売機能 = メソッド
お金   = 引数
ジュース = 戻り値

というように対応する様子を見ていきます。

【具体例:日常生活】

まずは実際に日常生活で自分が自動販売機を使うときにどのようにすれば販売機能を使えるか確認します。

★自動販売機の販売機能を使うイメージを確認★

  1. お金を投入
  2. 商品の販売ボタンを押す
  3. 商品が出てくる

自動販売機を使う際に、販売機能を使うためにお金を渡してあげると商品を得ることができるということです。

【具体例:プログラムで表現】

上で確認した、自動販売機を使用するという内容を表現したプログラムを用意してみましたのでそれを確認しながら、引数と戻り値のイメージをプログラムの記述として確認してみましょう。

【プログラム解説】

Drinkクラスは販売される飲み物を表現したクラスです。
商品名と内容量を表現するためのフィールドだけ定義してあります。

VendingMachineクラスは自動販売機を作るためのクラスです。
今回、自動販売機が持つ、販売機能を表現するものとしてsellDrinkメソッドを定義しました。

UseVendingMachineクラスは自動販売機を使うことを表現したクラスです。

mainメソッドを定義しVendingMachineクラスをインスタンス化し、sellDrinkメソッドを使用しています。

メソッドの戻り値として手に入るDrinkクラスオブジェクトのフィールドを利用して画面への表示を行います。

※戻り値がnullの場合の処理は割愛しています。

【定義から考える】

Javaでクラスにメソッドを定義する際は

という順番で書く必要があり、

今回のサンプルのソースコードは

としています。

このJavaで書いた定義部分を日本語で説明しなおすと以下のようになります。

Drink型のオブジェクト(ジュース)を戻り値として返す、sellDrinkという名前のメソッド(販売機能)であり、使用するためには引数としてint型のデータ(お金)を渡して貰う必要があり、その貰ったデータはmoneyという変数(機械のコイン収納部)に入り、そしてその変数を利用しながら処理を行う、という仕様の機能です。

【呼び出しから考える】

今度はメソッドを使用している部分(呼び出し)から読み解いてみます。

呼び出しとはメソッドを使うということですが、vm.sellDrink(100)が呼び出し部分です。

( )の中に100という数値が書いてありますがこれが引数であり、言い換えるとsellDrinkメソッドを使うときに「引き渡してあげる値」です。

自動販売機の販売機能を使うときにお金を入れるということと照らし合わせて考えてみてくださればわかりやすいはずです。

【まとめ】

今回は具体的に日常生活で使用している自動販売機の販売機能を例にあげてみましたが、さまざまな機械や物が持つ機能に当てはめてみていただくとより引数・戻り値がわかりやすくなると思います。オブジェクトの持つ機能を使いこなすためにぜひイメージできるようにしてみてください。

この記事に関連する講座

Androidアプリも、Webアプリもまずはここから

詳しくはこちら