メソッド
読み:メソッド
外語:method

 オブジェクト指向プログラミング言語において、そのオブジェクトの持つ、可能な挙動のこと。
目次

概要

記述法
 多くの言語では、次のように記述して使用する。
 オブジェクト.メソッド
 例えば、
 富士山.噴火
 といえば富士山オブジェクトが噴火処理を行なうことを表わす。

目的
 クラスを定義するにおいて、メソッドも同時に定義するのが一般的であるが、その目的としては、「同様の処理を一箇所にまとめる」ことにある。
 プログラム中の至る所に同様の処理を書くのはスパゲッティプログラムであり、好ましいことではない。その動作について変更があったとき、修正箇所が膨大な数であったら修正することが困難になる。
 また、それが比較的単純な処理であったとしても、意味のある処理を一箇所にまとめておけば後からの見直しも楽であるし、分かりやすくなる。かくしてメソッドは、オブジェクト指向プログラミング言語で多用されるようになった。
 なお、C++などではクラスに属さない関数を作ることができるが、Javaの場合はメソッド以外の関数を作ることが出来ない。

特徴

基本
 処理を関数で記述する言語の場合、メソッドも関数として記述されることが多い。このため、メソッドを呼び出す側も関数を呼ぶのと同様の記述とすることが多い。
 例えば、C++やJavaなどでは、次のようなスタイルとなる。
 山 富士山 = new 山();
 富士山.噴火();
 山オブジェクトの一つとして富士山を作り(new)、そこに定義される噴火メソッドを実行する。噴火は実際には山クラス内で関数として定義されており、引数を与えることも可能なため、噴火の後には()が付いているわけである。
 なお、Visual Basicなどでも、関数ではなくサブルーチンやその応用拡張であるが、同様の実装が行なわれている。

Java
 例えばJavaであれば、山クラスと噴火メソッドは、次のように定義できるだろう。
 public static class 山 {
 public void 噴火() { System.out.println("どっか〜ん"); }
 }
 山クラスを定義し、その中に噴火関数を一つ作ることになる。
 使うときには、先の例のように、次のようにする。
 山 富士山 = new 山();
 富士山.噴火();
 噴火関数に引数を定義すれば、指定した回数噴火することもできるだろう。
 public static class 山 {
 public void 噴火(int i) { for (; i > 0; i--) { System.out.println("どっか〜ん"); } }
 }
 使うときには、次のようにする。
 山 富士山 = new 山();
 富士山.噴火(5);
 これにて富士山は5回噴火する。

C++
 Javaのメソッドは、C++のメンバー関数に対応する。

再検索