可能的重复:
公共数据成员VS吸气剂,二传手
在一类的私有成员的目的
用的是什么getter和setter时,你可以让你的变量公众和避免这种线的麻烦,为A.setVariableX(A.getVariableY())
可能的重复:
公共数据成员VS吸气剂,二传手
在一类的私有成员的目的
用的是什么getter和setter时,你可以让你的变量公众和避免这种线的麻烦,为A.setVariableX(A.getVariableY())
要隐藏实现细节。 如果您选择,让您的属性公开,而不是,但后来决定改变他们的工作方式,你必须改变所有相关的代码。
随着getter和setter,你可以经常更改内部实现细节不改变可见API(从而避免改变任何使用类的API有问题的代码)。
getter和setter方法可以做验证,并延迟实例,而公共成员不能。
顺便说一句,这不是语言无关,因为最让他们看起来像在代码公共成员实现抽象属性远的执行语言。
因为有时也有一些限制,以什么您的变量可能是具有查询,当您将它才有意义。
举例来说,如果你的年龄不得为-1,你会检查你的二传手。
if(value >= 0)
{
_age = value;
}
else
{
throw new InvalidAgeException("Age may not be less than 0");
}
getter和setter方法适用于性能,无论“属性”在你的代码。
例如,你可以有一个angle
变量,它存储在弧度表示的角度值。 那么你可以定义getter和setter方法此变量,任何角度单位,你认为相关。
它的封装原则的一部分。 您可以使用getter和setter方法作为接口来与你的对象进行交互,这样就可以 - 例如 - 之后,而不会影响使用类(ES)的代码添加任何功能(如验证输入数据)。