2009-02-23 17 views

Respuesta

26

Porque no requieren ningún estado interno, pero no hay funciones independientes en Java: cada función debe ser miembro de una clase. Por lo tanto, son estáticos.

2

En gran parte porque estos son métodos de utilidad, muchos de los cuales se pueden aplicar a cálculos en primitivas. El objetivo de la clase es en gran parte ofrecer una biblioteca estándar de funciones, muchas de las cuales no necesitan ser aplicadas directamente a un objeto.

2

Son estáticos porque los métodos no se basan en instance variables de la clase Math.

+0

y, no son polimórficos/virtuales. – ChrisW

+0

Son estáticos porque se declaran como 'estáticos'. * Pueden ser * estáticos porque no dependen de variables de instancia y no necesitan ser anulados o llamados polimórficamente. –

0

Las funciones estáticas son gratuitas. No es necesario realizar un seguimiento de las variables de estado cuando se espera un único resultado del cálculo.

+5

Las funciones estáticas no son por definición efectos secundarios. – eljenso

-7

Se pueden invocar como si fueran una biblioteca de código matemático.

6

Cuando tiene métodos que realmente no involucran un estado o una clase (p. Ej., Funciones matemáticas, utilidades en arreglos, etc.), la clase solo se usa para "agruparlos" en una ubicación coherente. Entonces los enumera como estáticos (ya que no tocan el estado) y ya que nunca instancian la clase.

5

Junto con lo que todo el mundo ha dicho ... métodos estáticos son más rápidos que llamar por 2 razones:

  1. no son polimórficos - por lo que es una instrucción especial JVM para ejecutarlos
  2. que hacen No es necesario pasar "this" como primer argumento: no pasar argumentos significa menos elementos en la pila, lo que significa menos tiempo dedicado a poner elementos en la pila
-1

Necesitan ser estáticos porque los números son primitivos y no son objetos adecuados entonces no pueden ser métodos de instancia de los tipos de números.

Ahora Java también tiene clases para números de boxeo, pero sería demasiado ineficiente crear un objeto para cada operación matemática.

En otros idiomas, p. Smalltalk, los números son objetos y todas las operaciones aritméticas son métodos de instancia.

Cuestiones relacionadas