|
インスタンス変数()とは、Smalltalk等のオブジェクト指向言語において、オブジェクトのインスタンスごとに割り当てられた変数のことである。フィールド()、データメンバ()、メンバ変数()とも呼ばれる。それに対してクラス変数は、同じクラスに対する全てのインスタンスが同じ値を共有する。 インスタンス変数は、インスタンスフィールド()あるいは、略して「フィールド」と呼ぶこともある(本来、この「フィールド」の意味には、「クラス変数」も含まれるが、インスタンス変数のプログラミング言語によってはインスタンス変数のことを「フィールド」と呼び、クラス変数とは名前を区別しているものもある)。UMLではインスタンス変数のことを属性()とも呼ぶ。 1:class Foo 上記の例において、barはクラスFooのインスタンス変数である。それに対して、bazはクラス変数である。 以下のプログラムで、Fooクラスを用いて クラス変数とインスタンス変数の違いを示す。 プログラム例 1:class TestFoo 実行結果 foo1.bar=foo1.bar foo1.baz=foo2.baz foo2.bar=foo2.bar foo2.baz=foo2.baz 上記のプログラムにおいて、foo1.bazとfoo2.bazはFooクラスのクラス変数を表している。 つまり、foo1.bazとfoo2.bazが表しているインスタンスは同一である。 そのため、結果として出力されるfoo1.bazとfoo2.bazの値は同じとなる。 逆に、foo1.barとfoo2.barはインスタンス変数であり、独立した変数である。 そのため、結果として出力されるfoo1.barとfoo2.barは異なった値となる。 == 関連項目 == * クラス (コンピュータ) * メソッド (計算機科学) * フィールド (計算機科学) * クラス変数 * オブジェクト指向プログラミング * プロパティ * 属性 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「インスタンス変数」の詳細全文を読む スポンサード リンク
|