![]() |
1
18
从功能角度、java复杂性或运行时角度来看,这不是一项任务。然而,它的编码标准被更广泛的社区所接受。甚至很多静态代码审查工具,如 checkstyle 许多其他人检查此类课程是否遵守了这一规定。 为什么遵循这一惯例,在其他答案中已经解释过,甚至OP也涵盖了这一点。 我想进一步解释一下,大多数实用程序类都具有独立于对象实例的方法/函数。这些是一种聚合函数。因为它们只依赖于返回值的参数,而与实用程序类的类变量无关。因此,这些函数/方法大多保持静态。因此,实用程序类是所有静态方法的理想类。 因此,任何调用这些方法的程序员都不需要实例化这个类。然而,一些机器人程序员(可能没有太多经验或兴趣)会倾向于在调用其方法之前创建他们认为需要的对象。为了避免创建对象,我们有三个选项:-
现在,如果有人想为这些实用程序类添加一些功能的新方法,他不需要扩展它,他可以添加新方法,因为每个方法都是独立的,而且不可能破坏其他功能。因此,无需重写它。而且你也不打算灌输,所以需要对它进行子类化。最好标记为最终。 总之,创建实用程序类的对象没有意义。因此,构造函数应该是私有的。你永远不想改写它,所以把它标记为最终。 |
![]() |
2
9
这不是必要的,但很方便。实用程序类只是相关函数的命名空间持有者,并不意味着要实例化或子类化。因此,防止实例化和扩展会向类的用户发送正确的消息。 |
![]() |
3
0
Java语言和Java运行时之间有一个重要的区别。
当java类被编译为字节码时,没有访问限制的概念,
大多数这样启用的优化不再相关,因为jvm现在将相同的优化应用于所有在运行时为单态的类,而这些总是最重要的。 |
|
4
-1
默认情况下,此类类通常用于聚合执行不同操作的函数。在这种情况下,我们不需要创建新对象 |
![]() |
Alaa AbuZarifa · 将方法参数复制到最终temp变量无效 7 年前 |
![]() |
CameronCoob · 最终var更改值JAVA 7 年前 |
![]() |
gcolucci · 函数调用后最终对象失去属性值 7 年前 |
![]() |
Goji Berry · 错误:无法为最终变量赋值 7 年前 |