我在java中提供了一段代码,其中一个类只包含静态方法,但类本身并未声明为静态。我只想知道何时会需要这种设计。
答案 0 :(得分:6)
这个成语被称为 Utility class 。它只是放置自然不属于任何一个类的函数的地方,或者由于任何其他原因被排除在动态调度之外。 JDK中有几个示例,例如Math
,Collections
和Arrays
。
您似乎也对static class
的语义感到困惑。这与班级的工作方式无关(它只是一个普通的班级);它与静态类与其封闭类的关系有关,并实际指定除了访问作用域之外该类与它没有特定的关系,而非静态类(内部)类,必须使用封闭实例进行实例化。
答案 1 :(得分:0)
您使用静态方法,因此您无需实例化类以使用它们......
这是静态方法的主要目标......