使用getter和setter的优点是什么,只有获取和设置,而不是简单地使用公共字段为这些变量?
如果getters和setter不只是简单的get / set,我可以很快地计算出来,但我不是100%清楚如何:
public String foo;
是比任何更糟的:
private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
而前者需要更少的样板代码。
编译列表在这里的顶部看起来是赢家给我,从Java web开发者的角度:
>当你意识到你需要做的不仅仅是设置和获取值,你不必更改代码库中的每个文件。
>您可以在此处执行验证。
>您可以更改设置的值。
>您可以隐藏内部表示。 getAddress()实际上可能会得到几个字段为你。
>您已将公共界面与工作表下的更改隔离开来。
>一些图书馆期望这样。反射,序列化,模拟对象。
>继承此类,可以覆盖默认功能。
>您可以为getter和setter设置不同的访问级别。
>延迟加载。
>人们可以很容易地告诉你没有使用Python。