如何在ActionScript 3中创建内部ctor

时间:2014-04-06 14:30:17

标签: actionscript-3

我想在ActionScript3中为类创建一个内部ctor,使其不可变。我希望只允许另一个构建器类创建这个不可变类的实例 我尝试在Adobe's ActionScrtip 3 specification中找到答案,但它没有解释当没有为ctor定义公共名称空间(可访问)时会发生什么。

1 个答案:

答案 0 :(得分:2)

不可变对象:

package {

    public class Immutable {
        private var _value1:int;
        private var _value2:int;
        private var _value3:int;

        public function Immutable(value1:int, value2:int, value3:int) {
            _value1 = value1;
            _value2 = value2;
            _value3 = value3;
        }

        public function get value1():int {
            return _value1;
        }

        public function get value2():int {
            return _value2;
        }

        public function get value3():int {
            return _value3;
        }
    }
}

至于访问修饰符,internal is default

  

内部属性类似于Java中的默认访问控制,尽管在Java中没有这种访问级别的明确名称,并且只能通过省略任何其他访问修饰符来实现。 ActionScript 3.0中提供了内部属性,您可以选择明确表示您的意图,使属性仅对其自己的包中的调用者可见。

对于构造函数,您不能指定internal。如果省略访问修饰符,默认情况下构造函数将是可访问的(公共)