Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于类的所有方法中的静态_Java - Fatal编程技术网

Java 关于类的所有方法中的静态

Java 关于类的所有方法中的静态,java,Java,我在浏览java类时发现所有方法都是静态的,我想知道什么时候有需求,或者当我们必须在所有方法前面加上static前缀时,条件会出现在哪里。这是一种设计模式吗?确切地说:实用模式 这通常用于实用程序类。以数学课为例。您不需要对象的实例来计算2个数字中的最小值,因此Math.min是一种静态方法是有意义的 但是,过度使用静态方法/字段。助手类通常只提供静态方法。这些类提供了一些方法,这些方法不仅特定于一种对象,而且可以在整个项目中共享。例如,MathHelper可以定义一种方法来计算浮点值数组的平均

我在浏览java类时发现所有方法都是静态的,我想知道什么时候有需求,或者当我们必须在所有方法前面加上static前缀时,条件会出现在哪里。这是一种设计模式吗?

确切地说:实用模式


这通常用于实用程序类。以数学课为例。您不需要对象的实例来计算2个数字中的最小值,因此
Math.min
是一种静态方法是有意义的


但是,过度使用静态方法/字段。

助手类通常只提供静态方法。这些类提供了一些方法,这些方法不仅特定于一种对象,而且可以在整个项目中共享。例如,MathHelper可以定义一种方法来计算浮点值数组的平均值,另一种方法用于计算两点之间的距离,依此类推。

具有所有静态方法的类用于以下目的:

1) 摘自Joshua Bloch的《有效Java》

接口不能有静态方法,所以按照惯例,对于 将名为Type的接口放入名为Type的不可实例化类(第4项)中。 例如,Java集合框架有三十二种便利性 其集合接口的实现,提供不可修改的集合, 同步的集合等。几乎所有这些实现都是 在一个不可实例化的类(java.util.Collections)中通过静态工厂方法导出。 返回对象的类都是非公共的


2) @tgoossens

效用类别建议的效用模式。比如java.lang.Math