變數

變數可以用 varconst 關鍵字進行宣告。以 var 關鍵字宣告的變數可以在整個 Script 執行期間多次變更其值;以 const 關鍵字宣告的變數稱為「常數」,則僅能指定一次值,若嘗試指定新的值給已初始化的常數,會導致錯誤。如需詳細資訊,請參閱常數

副主題

靜態變數
實體變數

靜態變數

靜態變數是結合使用 static 關鍵字及 varconst 陳述式所宣告的。靜態變數是附加至類別而不是附加至類別實體,在儲存及共用適用於整個物件的類別資訊時很有用。例如,若要保持類別實體化的次數記錄,或者,若要儲存可允許的最大類別實體數目,靜態變數就很適用。

下列範例會建立 totalCount 變數,以追蹤類別實體化次數,也會建立 MAX_NUM 常數,以儲存最大的實體數目。totalCountMAX_NUM 是靜態變數,因為它們所包含的值可套用至整個類別而不是特定的實體。

class StaticVars
{
    public static var totalCount:int = 0;
    public static const MAX_NUM:uint = 16;
}

在 StaticVars 類別之外的程式碼及其任何子類別都是只能透過類別本身來參考 totalCountMAX_NUM 屬性。例如,下列程式碼可以正確運作:

trace(StaticVars.totalCount); // 輸出:0
trace(StaticVars.MAX_NUM); // 輸出:16

您不能透過類別的實體來存取靜態變數,因此下列程式碼會傳回錯誤:

var myStaticVars:StaticVars = new StaticVars();
trace(myStaticVars.totalCount); // 錯誤
trace(myStaticVars.MAX_NUM); // 錯誤

同時以 staticconst 關鍵字宣告的變數必須在宣告常數的同時進行初始化,StaticVars 類別的 MAX_NUM 也是一樣。您不能指定值給建構函式或實體方法之內的 MAX_NUM。下列程式碼會產生錯誤,因為它不是初始化靜態常數的有效方式:

// !! 以這種方式初始化靜態常數會產生錯誤
class StaticVars2
{
    public static const UNIQUESORT:uint;
    function initializeStatic():void
    {
        UNIQUESORT = 16;
    }
}

實體變數

實體變數包含以 varconst 關鍵字而不用 static 關鍵字宣告的屬性。實體變數是附加至類別實體而不是附加至整個類別,在儲存實體特有的值時很有用。例如,Array 類別具有名為 length 的實體屬性,其中儲存 Array 類別之特定實體所保存的陣列元素數目。

實體變數不管是宣告為 varconst,都不能在子類別中加以覆寫,但是您可以透過覆寫 getter 和 setter 方法,達到類似於覆寫變數的功能。如需詳細資訊,請參閱Get 和 set 存取子方法


Flash CS3

 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/main/00000063.html