- 分享
- 0
- 人气
- 0
- 主题
- 5
- 帖子
- 846
- UID
- 24817
- 积分
- 962
- 阅读权限
- 17
- 注册时间
- 2006-1-11
- 最后登录
- 2016-6-26
- 在线时间
- 2269 小时
      
|
本帖最后由 Venus228 于 2011-12-24 05:51 AM 编辑
各位大大们好。最近我在自学AS3,是用在Flash上面的语言。因为才刚刚学到OOP的阶段,有些东西还不是很明白,认识的还很浅。
想问的就是关于这个setter和getter的问题。我看过很多文章和许多在别的网站上面的讨论,有些人觉得应该养成使用setters和getters的习惯,有些人则认为setters和getters是多余的,只会增加文件的大小。
据我所学到目前为止,使用setters和getters可以让你更改/读取一个private property。
问题1:那为什么不用public variable呢?既然都要更改value就已经不像是private了啊。
问题2:就算只要做读取(read-only)而使用getters,那就用public const 就可以了不是吗?
有些人则说setters和getters的好处在于可以在更改/读取value的同时也可以执行其他的method。
另外有些人也说在某些程序debugging的时候setters和getters会给很大的帮助。至于这个我也是不明白,因为明明setter和getter的写法比直接用public variable来的复杂,在读的时候不是会更花时间吗?
AS3.0 public variables:- public var something:Object;
复制代码 AS3.0 setters和getters的写法:- private var _something:Object;
-
- public function set something(value:Object):void
- {
- _something = value;
- }
-
- public function get something():Object
- {
- return _something;
- }
复制代码 相信其他的Programming Language也会有用setter和getter的时候。可以分享一下经验吗?
想请大大们有什么建议,或者觉得什么时候应该用setter/getter或public var,可以指点一下小弟吗?
有些地方如果我写错了请不要见怪。我刚刚才接触OOP这个东西,请多多指教 谢谢啦~ |
|