我一直在学习AS3中的封装,并使用get / set函数来创建(或看起来)只读的变量。我可以使用实例变量,但不能使用静态变量。我发现this,这似乎表明可以在静态属性上使用get / set函数,但编译器一直告诉我我有重复的函数声明。这基本上就是我正在使用的:
package {
public class Foo {
protected static var bar:int = 0;
public static function get bar():int {return bar;}
}
}
答案 0 :(得分:5)
你不能创建一个与变量同名的函数(包括gets或sets),否则你将重新启动变量。
package {
public class Foo {
protected static var myVar:int = 0;
public static function get theVar():int {return myVar;}
}
}
答案 1 :(得分:4)
你可以采用的一个好习惯是调用_bar你将要通过getter和setter修改的“内部”变量,并简单地调用它们吧。
例如:
package {
public class Foo {
protected static var _bar:int = 0;
public static function get bar():int {
return _bar;
}
}
}