【初心者向け】関数とメソッドの違いって何?使い分ける必要は?
よく「function」という名前で定義されるような、特定の処理をまとめて呼び出したい時に使う「アレ」、ありますよね。
本やWEBサイトを見ていると、「関数」と呼んでいたり、「メソッド」と呼んでいたり、色々な呼び方がされています。
実は、両者は似たようなものであっても、その呼び方の意味は異なるのです。
今回は、初心者向けに出来るだけ簡単に「関数」と「メソッド」の違いについて、解説していきます。
【結論】違いは「クラスにあるかどうか」
結論から言うと、関数とメソッドの違いは、「クラスの中にあるのか、そうでないか」という、ただそれだけです。
※言語や文献上の取扱いによって異なることがあります。
よく「クラスメソッド」という言葉はJavaの教科書などで出てくると思いますが、「クラス関数」という言い方はしませんよね。
「関数」の見分け方
例えばJavaの場合、以下のようなコードを書いてから処理を書き始める経験をした方がほとんどだと思います。
// メイン処理を示すfunctionを定義
public static void main(String[] args) {
// 処理
}
この「main()」というfunctionは、クラスに定義せず、Javaのソースコードであればどこからでも呼ぶことが可能です。
クラスにないので、この「main()」は「関数」ということになります。
「メソッド」の見分け方
続いてJavaの例ですが、例えばJavaで「乱数を生成したい」となった場合、Javaの標準ライブラリで定義されている「Mathクラス」が利用されます。
以下は、Javaで乱数を生成するコードです。
System.out.println("乱数: " + Math.random());
ここでは「Math.random()」という部分で、「Mathクラスの中にあるrandomを呼び出す」という処理をしています。
つまり、乱数を生成するfunction「random()」はMathクラスの中にあるので、この「random()」は「Mathクラスのメソッド」ということになります。
まとめ
メソッドと関数の言い分け方は結構重要で、なんとなしに会話していると、使い方を間違うだけで会話のすれ違いが起きることもあります。
まあ、あまり気にしなくても良いですが、まとめると以下のようになります。
- クラスで定義されているのが「メソッド」
- クラス外でグローバルに定義されているのが「関数」
覚えておいて損はないでしょう。