静态属性
var ddd1 = new Widget();
trace(ddd1.widgetCount);
//out.print:undefined
//**无法通过实例属性访问widgetCount
trace(Widget.widgetCount);
//out.print:1
//**通过 “类名.静态属性”访问
var ddd2 = new Widget();
trace(Widget.widgetCount);
//out.print:2
var ddd3 = new Widget();
trace(Widget.widgetCount);
//out.print:3
var ddd4 = new Widget();
trace(Widget.widgetCount);
//out.print:4
Widget.widgetCount = 110;
trace(Widget.widgetCount);
//out.print:110
//**静态属性仍然可以改写
ddd5 = new SubWidget();
//out.print:Creating subwidget # 111
trace(Widget.widgetCount);
//out.print:111
//***说明创建一个子类继承了超类的构造函数
/**
可以理解“如果您没有将对 super() 的调用放入子类的构造函数中,
则编译器将自动生成对其不含参数的直接超类的构造函数的调用作为该函数的第一个语句。”
*/
var ddd6 = new Widget();
trace(Widget.widgetCount);
//out.print:111
var ddd7 = new Widget();
trace(Widget.widgetCount);
//out.print:112
静态方法
class StaticTest {
var name = "Ted";
static function getName() {
var local_name = name;
// 错误!不能在静态函数中访问实例变量。
}
}
//通过上面的就可以理解“类(静态)方法只能访问类(静态)属性,而不能访问实例属性”
博客主要介绍了类的静态属性和静态方法。静态属性无法通过实例属性访问,需用“类名.静态属性”访问,且可改写,子类继承超类构造函数时编译器会自动处理。静态方法中不能访问实例变量,如示例中在静态函数里访问实例变量会出错。
646

被折叠的 条评论
为什么被折叠?



