Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > ActionScript のオブジェクト指向プログラミング > クラス > 変数 | |||
変数は、var または const のいずれかのキーワードで宣言できます。var キーワードで宣言した変数は、スクリプトの実行中に複数回その値を変更できます。const キーワードで宣言した変数は定数と呼ばれ、1 回だけ値を割り当てることができます。初期化された定数に新しい値を割り当てようとすると、エラーが発生します。詳細については、定数を参照してください。
静的変数は、static キーワードと、var または const ステートメントのいずれかの組み合わせを使用して宣言します。クラスのインスタンスではなく、クラスに関連付けられた静的変数は、オブジェクトのクラス全体に適用される情報の格納および共有に役立ちます。たとえば、静的変数は、クラスがインスタンス化された回数を記録する場合や可能なクラスインスタンスの最大数を格納しておく場合に適しています。
次の例では、クラスのインスタンス化の回数を追跡する totalCount 変数およびインスタンス化の最大回数を格納する MAX_NUM 定数を作成します。totalCount と MAX_NUM 変数には、特定のインスタンスではなくクラス全体に適用される値が含まれているので、この 2 つの変数は静的です。
class StaticVars
{
public static var totalCount:int = 0;
public static const MAX_NUM:uint = 16;
}
StaticVars クラスとそのサブクラスの外部にあるコードは、StaticVars クラス自体を通じた場合にのみ、totalCount プロパティと MAX_NUM プロパティを参照できます。たとえば、次のコードは正常に動作します。
trace(StaticVars.totalCount); // 出力 : 0 trace(StaticVars.MAX_NUM); // 出力 : 16
クラスのインスタンスから静的変数にアクセスできないため、次のコードはエラーを返します。
var myStaticVars:StaticVars = new StaticVars(); trace(myStaticVars.totalCount); // エラー trace(myStaticVars.MAX_NUM); // エラー
static および const の 2 つのキーワードで宣言された変数は、StaticVars クラスが MAX_NUM に対する場合と同様に、定数の宣言時に初期化する必要があります。コンストラクタまたはインスタンスメソッド内の MAX_NUM に値を割り当てることはできません。次のコードは静的定数を初期化する有効な方法でないため、エラーが生成されます。
// !! この方法で静的定数を初期化するとエラー
class StaticVars2
{
public static const UNIQUESORT:uint;
function initializeStatic():void
{
UNIQUESORT = 16;
}
}
インスタンス変数には、var および const キーワードを使用し、static キーワードを使用せずに宣言されたプロパティが含まれます。クラス全体ではなくクラスインスタンスに関連付けられたインスタンス変数は、インスタンス固有の値の格納に便利です。たとえば、Array クラスには、この Array クラスの特定のインスタンスが保持する配列エレメントの数を格納する length という名前のインスタンスプロパティがあります。
インスタンス変数は、var または const として宣言されたかどうかにかかわらず、サブクラスではオーバーライドできません。ただし、getter および setter メソッドをオーバーライドすることにより、変数をオーバーライドするのに似た機能を実現できます。詳細については、get および set アクセサメソッドを参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000063.html