Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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中没有独立的函数——每个函数都必须是类的成员。因此,它们是静态的。很大程度上是因为它们是实用方法,其中许多方法可以应用于原语的计算。该类的目的在很大程度上是提供一个标准函数库,其中许多函数不需要直接应用于对象。它们是静态的,因为这些方法不依赖数学类的属性。静态函数没有“副作用”。当您希望从计算中得到单个结果时,不需要跟踪状态变量。可以像调用数学代码库一样调用它们。当您有不涉及状态或类的方法(例如,数学函数、数组上的实用程序等)时,

为什么数学类的方法是静态的?

因为它们不需要任何内部状态,但Java中没有独立的函数——每个函数都必须是类的成员。因此,它们是静态的。

很大程度上是因为它们是实用方法,其中许多方法可以应用于原语的计算。该类的目的在很大程度上是提供一个标准函数库,其中许多函数不需要直接应用于对象。

它们是静态的,因为这些方法不依赖数学类的属性。

静态函数没有“副作用”。当您希望从计算中得到单个结果时,不需要跟踪状态变量。

可以像调用数学代码库一样调用它们。

当您有不涉及状态或类的方法(例如,数学函数、数组上的实用程序等)时,该类仅用于“分组”将它们放在一个连贯的位置。因此,您将它们列为静态(因为它们不涉及状态),并且您从未实际实例化该类。

以及其他人所说的内容。。。静态方法调用更快,原因有二:

  • 它们不是多态的,因此运行它们是一条特殊的JVM指令
  • 他们不需要将“this”作为第一个参数传递-不传递参数意味着堆栈上的项目更少,这意味着将项目放到堆栈上的时间更少

  • 它们需要是静态的,因为数字是原语,不是正确的对象,所以它们不能是数字类型的实例方法

    现在Java也有用于装箱编号的类,但是为每个数学运算创建一个对象效率太低


    在其他语言中,例如Smalltalk,数字是对象,所有算术运算都是实例方法。

    而且,它们不是多态的/虚拟的。它们是静态的,因为它们被声明为
    静态的
    。它们可以是静态的,因为它们不依赖于实例变量,也不需要重写或调用多态性。静态函数不是没有定义副作用的。