屬性分實例屬性和類屬性,類屬性又稱為靜態屬性。實例屬性和靜態屬性在Flash中的概念有什么區別之處嗎?筆者與大家分享一下自己的經驗。
單擊“文件”---->“新建”,新建一個“ActionScript3.0類”文檔。
在類文檔中輸入代碼,將它的文件名保存為“Record.as”。
類代碼中,用public修飾的屬性是實例屬性,用static修飾的屬性是靜態屬性。
實例屬性和靜態屬性其實都是成員變量,也就是在函數外定義的變量。
實例屬性只能通過實例名來訪問,靜態屬性只能通過類名來訪問。
創建一個Flash文檔,新建一個代碼圖層,輸入以下代碼。
運行程序,其結果如下圖所示。
可以看出在類內部,靜態屬性可以直接訪問,也可以用類名來訪問。
但要注意靜態屬性只能在類內部訪問,在其他地方它是不能訪問的,而實例屬性在任何地方都可以訪問。
如果在靜態屬性age前加this,運行程序會提示錯誤,這是因為靜態屬性只屬于類,不能用實例引用,而this表示的就是實例。
在Flash文檔中創建兩個實例,并且更改靜態屬性age的值,代碼如下圖所示。
運行程序后,可以看到兩個實例輸出的值是一樣的。
這是因為靜態屬性不是某個實例特有的,而是所有實例共有的,當靜態屬性改變后,會影響所有的實例。
最后,修改Flash文檔中的代碼,變為更改實例r1的實例屬性值,并輸出實例屬性值,代碼如下圖所示。
運行程序后,結果如下圖所示。
可以看到兩個實例輸出的實例屬性值并不相同,這是因為實例屬性是實例所特有的,修改某個實例屬性并不會影響另一個實例的屬性。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!