getter和setter方法的目的是什么? [重复](Purpose of getters a

2019-10-23 03:54发布

可能的重复:
公共数据成员VS吸气剂,二传手
在一类的私有成员的目的

用的是什么getter和setter时,你可以让你的变量公众和避免这种线的麻烦,为A.setVariableX(A.getVariableY())

Answer 1:

要隐藏实现细节。 如果您选择,让您的属性公开,而不是,但后来决定改变他们的工作方式,你必须改变所有相关的代码。

随着getter和setter,你可以经常更改内部实现细节不改变可见API(从而避免改变任何使用类的API有问题的代码)。



Answer 2:

getter和setter方法可以做验证,并延迟实例,而公共成员不能。

顺便说一句,这不是语言无关,因为最让他们看起来像在代码公共成员实现抽象属性远的执行语言。



Answer 3:

因为有时也有一些限制,以什么您的变量可能是具有查询,当您将它才有意义。

举例来说,如果你的年龄不得为-1,你会检查你的二传手。

if(value >= 0)
{
   _age = value;
}
else
{
  throw new InvalidAgeException("Age may not be less than 0");
}


Answer 4:

getter和setter方法适用于性能,无论“属性”在你的代码。

例如,你可以有一个angle变量,它存储在弧度表示的角度值。 那么你可以定义getter和setter方法此变量,任何角度单位,你认为相关。



Answer 5:

它的封装原则的一部分。 您可以使用getter和setter方法作为接口来与你的对象进行交互,这样就可以 - 例如 - 之后,而不会影响使用类(ES)的代码添加任何功能(如验证输入数据)。



文章来源: Purpose of getters and setters? [duplicate]