Essential ActionScript 3.0 読書メモ 第28回 静的変数

これまでに、インスタンス変数とインスタンスメソッドを使って、オブジェクトの性質や振る舞いを定義する方法を学んできた。続いて、クラスそれ自身の情報を制御したり、機能を創りだしたりする方法を学んでいく。今回は、静的変数について学ぶ。

今まで学んできたインスタンス変数は、クラスの特定のオブジェクトに関連する変数だった。対して、静的変数(Static Variables)は、クラスそれ自身に関連する変数である。

例えば、ダイアログボックスのクラスにおける、新しいダイアログボックスのサイズの初期値だとか、自動車を表すクラスにおける、自動車のインスタンスの最高速度などである。

インスタンス変数と同様、静的変数はクラス定義の中で変数定義を行う。しかし、静的変数の定義は必ずstatic属性を含まなければならない。
例:

class SomeClass {
  static var identifier = value;
}

インスタンス変数と同様、アクセスコントロール修飾子によって静的変数のアクセス権限を制御することもできる。静的変数には、インスタンス変数と同様、public, internal, protected, privateの4種類のアクセスコントロール修飾子が利用できる(アクセスコントロール修飾子を伴わない場合は、internal)。
例:

class SomeClass {
  private static var identifier = value;
}

静的変数にアクセスするには、次のような書き方をする。

SomeClass.identifier = value;

SomeClassはその静的変数を定義したクラスである。クラス名と変数名の間には「.(ドット)」をつける。

静的変数を定義したクラスの内部であれば、クラス名はなくても構わない。が、多くのプログラマーは、クラス内部で静的変数にアクセスする場合にもクラス名をつける。

同じクラスの中に、同じ名前の静的変数とインスタンス変数は同居できる。例として、Blogというクラスの中に、titleという静的変数とインスタンス変数があると考える。クラス名を指定せず、単にtitleと書いた場合は、titleはインスタンス変数を表す。静的変数にアクセスできるのは、Blog.titleという風に、クラス名を伴って書いた場合だけである。

今日の進捗:366→384/3546

コメントを残す