インスタンスメソッド【instance method】メンバメソッド/member method
概要

オブジェクト指向言語では、関連するデータの集合と、そのデータを操作する手続きをひとまとまりにした「オブジェクト」を定義する。オブジェクトが保持するデータは「プロパティ」(またはフィールド、インスタンス変数)、処理内容を記述した手続きは「メソッド」と呼ぶ。クラスベースの言語では、オブジェクトの雛形となる「クラス」を定義し、プログラム実行時にそこからオブジェクトを生成する。この生成されたオブジェクトが「インスタンス」である。
インスタンスメソッドは、特定のインスタンスを対象として呼び出され、そのインスタンス自身が持つプロパティを読み込んだり書き換えたりする処理を実行する。メソッドの実行時には対象インスタンスへの参照が自動的に渡され、そのインスタンスのプロパティやメソッドへアクセスできる。Javaの「this」やPythonの「self」などが該当する。
同じクラスから複数のインスタンスが生成された場合、各インスタンスはそれぞれ独立したプロパティを持つ。そのため、同一のインスタンスメソッドを呼び出しても、インスタンスごとに保持する値が異なれば、それぞれ異なる結果を返すことになる。例えば、銀行口座を表すクラスでは、入金や出金の処理をインスタンスメソッドとして実装することで、口座ごとに独立した残高を管理できる。多くの言語では、クラス内で特別な指定をせずに定義したメソッドはインスタンスメソッドとなる。
一方、特定のインスタンスではなくクラスそのものに紐づくメソッドを「クラスメソッド」(静的メソッド)と呼ぶ。クラスメソッドはインスタンスを生成せずに呼び出せる反面、特定のインスタンスのプロパティに直接アクセスすることはできず、クラス全体で共有するデータや状態に依存しない処理に用いられる。JavaやPythonなどのオブジェクト指向言語はインスタンスメソッドとクラスメソッドの両者を備えており、「インスタンスメソッド」という呼称はこうしたクラスメソッドと区別する文脈で用いられることが多い。