使用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)
而前者需要很少的样板代码.
我很困惑为什么Java Point类接受两个int参数并且getX()和getY()方法返回双精度.例如,我可以定义一个Point
Point p = new Point(4,6);
Run Code Online (Sandbox Code Playgroud)
如果我打电话..
p.getX();
Run Code Online (Sandbox Code Playgroud)
它会返回4.0.如果我打电话
p.x;
Run Code Online (Sandbox Code Playgroud)
我会得到4.
有什么理由吗?