我无法理解为什么double xx并将yy其放入final构造函数中.为什么不让我只是把它们double xx和double yy.为什么他们必须final?我想这个目的的全部目的是创建一个immutable对象.
public class Point {
private final double x, y;
private double distance;
public Point(final double xx, final double yy) {
this.x = xx;
this.y = yy;
this.distance = -1;
}
}
Run Code Online (Sandbox Code Playgroud)
And*_*ner 11
这些参数不需要是最终的.
参数最终有两个原因:
显然(1)不适用.
(2)没有必要,因为它是如此简单的代码,你可以看到它没有改变参数.
有一种思想流派认为所有参数和局部变量都应该被声明为最终的,因为这样可以更容易推理代码,就像使用不可变类型更容易推理代码一样使用它们.
还有另一种思想流派认为,final到处添加只是不必要的噪音,而且,如果你正在编写无法判断价值是否在变化的方法,那么你的方法就太长了.
很大程度上,使参数和局部变量最终归结为个人/团队偏好.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |