インスタンス
出典: フリー百科事典『ウィキペディア(Wikipedia)』
計算機科学でのインスタンス(instance)とは、オブジェクトの実体のことをいう。instanceとは、英語で「実例」を意味する。オブジェクト指向言語においては、多くの場合クラスと呼ばれるものを元に作成したオブジェクトの実体を指す。データモデルやオブジェクト指向設計においても用いられる用語である。インスタンスを生成することをインスタンス化(instantiate)という。
例えば、Javaの場合で以下のクラスを作ったとする。
public class InstanceMaker { private String name; public InstanceMaker(final String name){ this.name = name; } public String getName(){ return this.name; } public void setName(final String name){ this.name = name; } }
このクラスからインスタンスを生成するには
InstanceMaker instance = new InstanceMaker("名前");
とする。ここでインスタンスが生成される。これはオブジェクトでもある。 このインスタンスでインスタンスメソッドInstanceMaker#getName()
を実行するには、
instance.getName();
とする。インスタンスメソッドとは、static
(静的)ではない、インスタンスからのみ呼び出せるメソッドのことである。 このメソッドによって得られる文字列は、
名前
となる。 ここで、オブジェクトinstance
の中身を変えたい時には、
instance.setName("新しい名前");
とする。ここで再びInstanceMaker#getName()
を実行すると、同じオブジェクトでも得られる文字列は
新しい名前
となる。これは、インスタンスメソッドInstanceMaker#setName()
によってinstance
オブジェクトのインスタンスが変わったことを意味する。 このように、同じオブジェクトでもメソッドなどの動きによってオブジェクトの状態が異なる。そのときの一つ一つの状態のことをインスタンスと呼ぶ。
一般には、インスタンスはオブジェクトと同義として扱う事が多い。