インスタンス変数 インスタンス変数の概要

インスタンス変数

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/10/16 14:19 UTC 版)

Jump to navigation Jump to search

インスタンス変数は、インスタンスフィールド (instance field) あるいは、略して「フィールド」と呼ぶこともある (本来、この「フィールド」の意味には、「クラス変数」も含まれるが、プログラミング言語によってはインスタンス変数のことを「フィールド」と呼び、クラス変数とは名前を区別しているもの[要説明]もある)。UMLではインスタンス変数のことを属性 (attribute) とも呼ぶ。

Javaのクラスを用いた例を示す。

class Foo {
  String bar;
  static String baz;
}

上記の例において、barはクラスFooのインスタンス変数である。それに対して、bazはクラス変数である。 以下のプログラムで、Fooクラスを用いてクラス変数インスタンス変数の違いを示す。

プログラム例:

class TestFoo {
  public static void main(String [] args) {
    Foo foo1 = new Foo();
    Foo foo2 = new Foo();
    foo1.bar = "foo1.bar"; // foo1.bar (インスタンス変数) に"foo1.bar"を代入
    foo1.baz = "foo1.baz"; // foo1.baz (クラス変数) に"foo1.baz"を代入
    foo2.bar = "foo2.bar"; // foo2.bar (インスタンス変数) に"foo2.bar"を代入
    foo2.baz = "foo2.baz"; // foo2.baz (クラス変数) に"foo2.baz"を代入
    System.out.println("foo1.bar=" + foo1.bar + " foo1.baz=" + foo1.baz);
    System.out.println("foo2.bar=" + foo2.bar + " foo2.baz=" + foo2.baz);
  }
}

実行結果:

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は異なった値となる。




「インスタンス変数」の続きの解説一覧




固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「インスタンス変数」の関連用語

インスタンス変数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



インスタンス変数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのインスタンス変数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS