🔥

【最初の壁】必ず分かる!イメージで理解するメソッド(関数)【図解あり】

2024/08/26に公開

はじめに

皆さんこんにちは。
今回は処理のまとまりを定義するメソッドという仕組みをご紹介します。

多くの初心者の方が「メソッドから難易度が上がった」と感じているかと思います。ですが、イメージや用語を押さえればメソッドは難しいものではありません。

今回の内容は次のような方にオススメです。

こんな人にオススメ

  • 概念レベルでメソッドを理解したい
  • メソッドのメリットを理解したい
  • 引数や戻り値といった用語を理解したい

初めて学習する方にも分かるように、丁寧に解説していきます。
プログラミングに慣れてきた方も、是非一度目を通していただけると嬉しいです。

😋 メソッドを活用できるようになると、コードの工夫のレベルがグッと上がります♪

メソッド(関数)

まずポイントをチェック

  • 処理のまとまりを定義することができる
  • 処理に名前を付けることができ、理解しやすくなる
  • 再利用可能なので、同じ処理を何度も書かなくてよい

処理のまとまり

メソッドとは、処理のまとまりを切り出す仕組みです。
メソッドを活用することで、処理のまとまりの「名付け」と「再利用」が可能になります。

名付けをすることで、その処理が何をするのか理解しやすくなります。
メソッドで区切らず処理をダラダラ記述した場合、処理のまとまりや意味が不明確になりやすいので、積極的にメソッドを定義します。

🍕 例えば、「犬の首輪にリードをつけて、リードを持って歩く」という処理に「犬の散歩」という名前を付けると理解しやすくなるように、処理のまとまりを定義することができます。

😋 名前を付けると処理の目的がはっきりします♪

再利用

続いては「再利用」について説明します。
プログラミングでは、全く同じ処理を何度も書きたくなることがあります。

🍕 例えば、1日2回、朝と夜に「犬の散歩」を行うような場面です。「犬の首輪にリードをつけて、リードを持って歩く」という具体的な処理をコピペしてしまうと、同じコードが複数箇所にできてしまい、処理内容に変更があった際にコピペした部分を全て修正しなければいけません。

そこで同じ処理は切り出して定義しておきます。
そうすることで処理の名前を指定するだけで、何度も処理を再利用することができます。

😋 メソッドは処理を再利用できることがメリットです♪

メソッドが扱う値

まずポイントをチェック

  • メソッドに渡す値と、メソッドから出す値がある
  • メソッドに渡す値を引数という
  • メソッドから出す値を戻り値という

メソッドは2つの値の出し入れがあります。
それぞれを「引数」「戻り値」と言います。

現時点では「引数は入れる値」「戻り値は出す値」とだけイメージしてください。
それぞれ順番に解説していきます。

😋 メソッドが工場だとすると、引数は材料、戻り値は製品というイメージです♪

引数

まずポイントをチェック

  • メソッドには外から値を渡すことができる
  • 引数によってメソッドの再利用性が上がる
  • 引数なしのメソッドも定義可能

引数とは、メソッドに渡す値のことです。
メソッドの処理を進めるのに外部の値が必要であれば、引数として渡します。

🍕 例えば、「プリンターで印刷する」メソッドであれば、印刷内容の情報が必要です。この印刷内容が引数として渡す値です。外部の情報が必要な処理は引数として受け取ります。

この引数という仕組みがあることで、メソッドの再利用性が上がります。

🍕 例えば、プリンターであれば、渡す印刷内容によって印刷の結果が変わります。

😋 同じメソッドでも引数によって様々な結果が得られるので、無闇にコードを増やさなくて済みます♪

そして、引数は必要な数だけ用意することができます。

🍕 例えば、プリンターで印刷するには、印刷内容だけでなく、用紙サイズや部数を指定することもできます。そこで、印刷内容・用紙サイズ・部数を引数とすることで、様々なパターンの印刷を同じメソッドで対応することができます。

メソッド宣言時の引数の数に制限はありませんが、引数が多いメソッドは処理が理解しづらくなるので気をつけましょう。

😋 引数は大抵は0〜3個、多くても5個程度にすると良いでしょう♪

もちろん、引数なしのメソッドを用意することもできます。
引数がないということは、何度実行しても同じ結果になるということです。

🍕 例えば、「プリンターで印刷する」メソッドに引数がない場合は、毎回同じ内容で印刷することになります。毎回同じ内容を印刷することが目的であれば引数なしでも問題ありません。

😋 「犬の散歩」のように毎回同じ内容で問題なければ引数は不要です♪

戻り値

まずポイントをチェック

  • メソッドは実行結果として値を返せる
  • 「モノを作る」メソッドは、作ったモノを戻り値として返す
  • 何かの「行為」をするだけのメソッドでは、戻り値を返さないこともできる

戻り値とは、メソッドの実行によって得られる値ことです。
メソッドは、引数を入力として、出力として戻り値を吐き出す仕組みと言えます。

🍕 例えば、「プリンターで印刷する」メソッドであれば、印刷物が戻り値です。他にも、「ガシャポン」メソッドであれば、お金が引数でおもちゃが戻り値です。

😋 モノを作るメソッドは、作ったモノを戻り値として返します♪

また、戻り値を返さないメソッドを用意することもできます。
何かの「行為」をするだけのメソッドでは、戻り値を返しません。

🍕 例えば、「犬の散歩」は何も結果がないので、戻り値を返しません。

😋 戻り値のないメソッドは処理ステップをまとめたものです♪

【補足】メソッドと関数の違い

まずポイントをチェック

  • メソッドは、オブジェクト内の機能として定義される
  • 関数は、それ自体がオブジェクトとして定義される

メソッドと関数の違いは、それ自体が値かオブジェクトの一部なのかです。
メソッドは、オブジェクトがもつ機能として位置付けられてます。
関数は、それ自体が値でありオブジェクト型の1種として扱われています。

メソッドと関数は「処理のまとまり」という意味では同じようなものです。
コード上でも両者の使い方はほとんど同じです。そのため、両者の名前を混同して呼ぶ人もいますが、厳密な呼び分けを気にする人もいるので気に留めておくと良いかもしれません。

😋 メソッドも関数もどちらも処理を切り出したものです♪

おわりに

皆さん、お疲れ様でした。
ここまでご覧いただき、ありがとうございました。

メソッドは処理をまとめるためのものでしたが、メソッドを作ることで私達プログラマーにとって理解しやすいコードになります。いきなり分かりやすいコードというのは難しいかもしれませんので、少しずつメソッド定義をしてみて、まずは自分にとって理解しやすいコードを目指してみましょう。

😋 これからもプログラミング学習頑張りましょう♪

Discussion