2007年1月14日星期日

2.4.创建静态方法或属性


2.4. 创建静态方法或属性

问题
我要创建的方法和属性不需要类实例就能直接访问。
解决办法
使用static 修饰符申明属性或方法
讨论

默认下属性和方法是属于实例的,例如 Example 类定义了 _id 属性和 getId( ) 方法,那么每个Example 实例都有自己的_id 属性和getId( ) 方法。但是有种情况你希望属性或方法是和类相关联而不是类实例,也就说不管有多少个类实例,都只有一个公共属性或方法,这样的属性和方法称为静态属性和方法。
Flash 播放器的类中就有些这样的例子,比如 Math 类中定义了 round( ) 方法,round( ) 方法就是个静态方法,因此可以通过类直接访问:
trace(Math.round(1.2345));
Math 类包含全部是静态方法,但是类也可以同时含有静态方法和实例方法及属性。比如 String 类有多数实例属性和方法,然而fromCharCode( ) 方法是静态的,该方法返回字符码。
下面的代码申明了一个静态的私有的属性_example:
static private var _example:String;
修饰符的顺序没有关系,比如static private 和 private static 是一样的.
static最重要的用处就是在单态模式下,即类只能创建一个实例,单态类有一个private static 属性用来存储类实例,然后在一个 public static 方法中访问这个实例。


没有评论: