各位大大们好。最近我在自学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;
- private var _something:Object;
-
- public function set something(value:Object):void
- {
- _something = value;
- }
-
- public function get something():Object
- {
- return _something;
- }
想请大大们有什么建议,或者觉得什么时候应该用setter/getter或public var,可以指点一下小弟吗?
有些地方如果我写错了请不要见怪。我刚刚才接触OOP这个东西,请多多指教
