使用属性而不是公共变量是否有任何优势?

Mic*_*ert 3 field properties accessor actionscript-3

这可能是一个非常愚蠢的问题,但无论如何我都要问它.我大约一个月毕业,在学习期间,我一直被教导使用属性而不是公共变量.

所以我开始想知道优势是什么,我必须说,在某些情况下,我根本没有任何线索.当然,在设置属性或获取属性时需要执行其他逻辑时很方便,但在获取/设置变量时使用属性是否有任何优势?我的意思的一个例子如下所示(As3).

private var _myVariable:SomeClass;

public function get myVariable():SomeClass{
    return _myVariable;
}

public function set myVariable(value:SomeClass):void{
    _myVariable = value;
}
Run Code Online (Sandbox Code Playgroud)

所以,重复并澄清一下我的问题:像这样编程我的getter/setter是否有任何优势,或者我可以将变量更改为public并删除getter/setter?

Dan*_*elB 5

如果你只使用公共getter和public setter包装对私有变量的访问,而没有进一步的要求来设置或获取变量,你可以使用公共属性.

如果你想稍后从你的类继承,你应该考虑使用getter和setter,并且可能能够以其他方式扩展它,你目前没有考虑.