0

我正在阅读教程,那里的用户开始像这样开始设置器和获取器

    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;
}

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

4

1 回答 1

1

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

如果你用 getter 和 setter 定义了一个类 Mother.as,那么继承 Mother.as 的 Child.as 类就不需要重新定义 getter 和 setter。

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

于 2013-05-29T16:03:11.187 回答