当前位置:  开发笔记 > 编程语言 > 正文

构造函数java中的final double

如何解决《构造函数java中的finaldouble》经验,为你挑选了1个好方法。

我无法理解为什么double xx并将yy其放入final构造函数中.为什么不让我只是把它们double xxdouble 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; 
 }

}

Andy Turner.. 11

这些参数不需要是最终的.

参数最终有两个原因:

    在该函数中声明的内部类中使用它们;

    防止他们的价值被意外改变.

显然(1)不适用.

(2)没有必要,因为它是如此简单的代码,你可以看到它没有改变参数.

有一种思想流派认为所有参数和局部变量都应该被声明为最终的,因为这样可以更容易推理代码,就像使用不可变类型更容易推理代码一样使用它们.

还有另一种思想流派认为,final到处添加只是不必要的噪音,而且,如果你正在编写无法判断价值是否在变化的方法,那么你的方法就太长了.

很大程度上,使参数和局部变量最终归结为个人/团队偏好.



1> Andy Turner..:

这些参数不需要是最终的.

参数最终有两个原因:

    在该函数中声明的内部类中使用它们;

    防止他们的价值被意外改变.

显然(1)不适用.

(2)没有必要,因为它是如此简单的代码,你可以看到它没有改变参数.

有一种思想流派认为所有参数和局部变量都应该被声明为最终的,因为这样可以更容易推理代码,就像使用不可变类型更容易推理代码一样使用它们.

还有另一种思想流派认为,final到处添加只是不必要的噪音,而且,如果你正在编写无法判断价值是否在变化的方法,那么你的方法就太长了.

很大程度上,使参数和局部变量最终归结为个人/团队偏好.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有