使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?
如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:
public String foo;
Run Code Online (Sandbox Code Playgroud)
更糟糕的是:
private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)
而前者需要很少的样板代码.
我被教导要经常使用吸气剂和固定剂.但是,我不知道这些方法的优缺点,因为通过实现它们,我们暴露数据并隐藏它.
我对此有点困惑.任何人都可以就我们使用吸气剂/定位器的原因给出一些正确的建议,以及它们的优点是什么?
我已经看到成员变量给出了私有修饰符,然后使用getter/setter方法来设置和获取变量的值(在标准化的名称中).
那么为什么不将变量公开给自己(除了像弹簧框架这样依赖于IOC的getter/setter等的情况).它有助于达到目的.
在C#中,我看到了getter/setter和成员变量的大写.为什么不将变量公开?
请考虑以下Java代码:
public class SomeClass{
private int data;
public void setData(int data){
this.data = data;
}
public int getData(){
return this.data;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,可以从任何地方访问数据的值.那么为什么不公开现场数据呢?