AS3:内联方式写入get和set?

时间:2013-05-29 15:43:22

标签: actionscript-3 oop setter getter

我正在阅读一个教程,而那里的用户就像这样开始制定者和吸气者

    function get f():Number;
    function set f(value:Number):void;

在界面内部,然后将其保存在变量

内的主文件中
    var testNode:INode;

并将其引用为

    testNode.f;

我认为这非常方便,特别是当你有很多变数时。而不必为每个私有值创建两个函数。 但是,我尝试做同样的事情而不在接口内实例化get和set(因为我不需要这个)并且我得到一个错误,说该函数没有正文。

为什么?有没有办法以这么干净,简短的方式写入get和set?到目前为止,我一直在写这些

public function get someVar():SomeClass {
   return _someVar;
}

public function set someVar(newValue:SomeClass):void {
  _someVar = newValue;
}

但是当我有几个私有变量时,这有点麻烦。

1 个答案:

答案 0 :(得分:1)

接口只是您的类的模型,它不允许您跳过函数(或getter / setter)的定义。您必须在实现接口的任何类中声明getter和setter。您正在寻找的是扩展(继承)。

如果使用getter和setter定义类Mother.as,则扩展Mother.as的类Child.as不需要重新定义getter和setter。

此外,如果您不打算在getter和setter中编写任何其他内容,则应使用公共变量。这些资源比无用的get / set消耗更少。