編集の要約なし
(→Ruby: クラスインスタンス変数についての注記) |
編集の要約なし |
||
'''クラス変数'''
これに対して、インスタンスごとに確保される変数のことを、[[インスタンス変数]]あるいは単に[[フィールド (計算機科学)]]、[[データメンバ]]、[[メンバ変数]]などと呼ぶ。
[[統一モデリング言語|UML]]ではクラス変数のことを、特別な意味を持つ'''[[属性]]'''として'''クラススコープ'''
== Ruby ==
本節では[[スクリプト言語]]である[[Ruby]]でクラス変数の概略を記す。Rubyにおいては、@@で始まる変数がクラス変数となる。
本節では、[[Java]]におけるクラス変数の例を記す。
Javaにおいては、static修飾子を使うことでクラス変数を宣言できる。下記の例において、2行目で宣言されているfooはクラス変数であり、3行目で宣言されているvarは[[インスタンス変数]]である。冒頭でも説明されているように、クラス変数は同一[[クラス (コンピュータ)|クラス]]と[[サブクラス (計算機科学)|派生クラス]]で共有される。ただし、クラス変数のアクセスレベルが<code>private</code>の場合
<syntaxhighlight lang="java">
class Hoge {
//hogeインスタンスでクラス変数fooを読むこともできる(ただし、推奨されない文法)。
System.out.println("hoge.foo = " + hoge.foo);
hoge.foo = 700; //クラス変数fooに700を代入
System.out.println("hoge.foo = " + hoge.foo); //fooを表示
System.out.println("hoge.var = " + hoge.var); //varを表示
}
}
|