インスタンスは概念上は「どこかに作られた、クラスのフィールドやメソッドを持つもの」である。
作られた場所は「どこか」のため、直接操作することはできない。操作は「参照」を使用して行う。
参照はインスタンスの作成時に返される。クラス型の変数は、正確には「クラスの参照型の変数」であり、この変数にインスタンスの参照を格納することができる。
参照の格納後は、その参照を使用してクラスのインスタンスを操作することができる。
と言っても、インスタンスが直接操作できず、参照を通してのみ操作できることを考えれば、参照=クラスと考えてしまって構わない。
実際には、インスタンスはメモリ上に確保された領域である。
確保されたメモリ領域には、フィールドが格納する値や、「どのメソッドを呼ぶか」といったデータが置かれている。
インスタンスには「自分のクラスが何のクラスなのか」が情報として格納されているため、参照を格納した型がインスタンスのスーパークラスであったとしてもインスタンスのクラスのメソッドを呼び出すことができ、またダウンキャストも行える。これが、ポリモーフィズムされる理由である。
また、クラスの他に、配列の実体も「インスタンス」と呼ぶが、普通はあまりこちらの意味では使用しない。
さらに、「インスタンス」がそのものずばり「実体」としての意味として使用されることがあるため、特に英文に出てきた場合には文脈から把握する必要がある。
最終更新:2005年07月29日 12:13