我读过一些书Java,说为诸如x和的变量创建setter和getter很好y。例如:
Java
x
y
public int getX(){ return x; } public void setX(int x){ this.x = x; }
但这有什么区别?
...(shape.x)... // basically getX()
和
shape.x = 90; // basically setX()
如果二传手和消气手更好,您能给我解释一下实际问题吗?
多个原因:
shape.x = 90
那么您将来将无法添加任何逻辑来验证数据。
如果x不能小于100,就不能这样做,但是如果您有像
public void setShapeValue(int shapeValue){ if(shapeValue < 100){ //do something here like throw exception. } }
虽然对于像
public final String SOMETHING = "SOMETHING";
您将允许对字段的访问,因为它们无法更改,例如,变量会将它们与getter,setter放置在一起。
尽管在这种情况下,您必须谨慎使用getter方法,以确保您不给出对象的引用(以防您的类将对象作为实例)。
我们可以在使用getter和setter的任何程序包中使用私有变量。