我想在ActionScript3中为类创建一个内部ctor,使其不可变。我希望只允许另一个构建器类创建这个不可变类的实例 我尝试在Adobe's ActionScrtip 3 specification中找到答案,但它没有解释当没有为ctor定义公共名称空间(可访问)时会发生什么。
答案 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。如果省略访问修饰符,默认情况下构造函数将是可访问的(公共)