flash – ActionScript属性 – 公共Getter,受保护的Setter
发布时间:2020-12-15 07:24:53 所属栏目:百科 来源:网络整理
导读:是否可以拥有一个拥有公共getter和受保护的setter的属性? 我有以下代码: public class Mob extends Sprite { // snip private var _health:Number; // tried making this protected,didn't work public function get health():Number { return _health; }
是否可以拥有一个拥有公共getter和受保护的setter的属性?
我有以下代码: public class Mob extends Sprite { // snip private var _health:Number; // tried making this protected,didn't work public function get health():Number { return _health; } protected function set health(value:Number):void { _health = value; } // snip public function takeDamage(amount:Number,type:DamageType,... additionalAmountAndTypePairs):void { var dmg:Number = 0; // snip var h:Number = this.health; // 1178: Attempted access of inaccessible property health through a reference with static type components.mobs:Mob. this.health = h - dmg; // 1059: Property is read-only. } } 我确实有这个.健康 – = dmg;但我把它拆分出来以获得有关编译器错误的更多细节. 我不明白该属性如何在同一个类中被认为是只读的.我也不明白它是如何无法进入的. 如果我将支持字段,getter和setter全部保护起来,它会编译,但这不是我想要的结果;我需要外在可读的健康. 解决方法
不,访问者必须具有彼此相同的权限级别.你可以让你的公众 获取set函数,然后有一个受保护的setHealth,getHealth函数对.如果您愿意,可以将其反转,但关键是您有一组方法可以在公共权限上访问,另一组方法可以在受保护的权限级别访问.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |