¿Por qué los métodos de la clase Math están estáticos?¿Por qué los métodos de la clase Math están estáticos?
Respuesta
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.
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.
Son estáticos porque los métodos no se basan en instance variables de la clase Math.
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.
Las funciones estáticas no son por definición efectos secundarios. – eljenso
Se pueden invocar como si fueran una biblioteca de código matemático.
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.
Junto con lo que todo el mundo ha dicho ... métodos estáticos son más rápidos que llamar por 2 razones:
- no son polimórficos - por lo que es una instrucción especial JVM para ejecutarlos
- 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
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.
- 1. ¿Por qué los métodos Array.Sort() y Array.IndexOf() son estáticos?
- 2. Métodos estáticos de Python, ¿por qué?
- 3. Métodos estáticos de la clase Python
- 4. ¿Todos los métodos en la clase principal deben ser estáticos?
- 5. ¿Qué es mejor? Los métodos estáticos o métodos de instancia
- 6. F # Métodos estáticos En la clase
- 7. xCode/declarar métodos estáticos en la clase
- 8. ¿Por qué tienen todos los métodos/variables estáticos en una clase no estática?
- 9. ¿Por qué los métodos estáticos deben ser incluidos en una clase?
- 10. ¿Por qué obtengo los métodos de la clase base por reflexión cuando la subclase los anula?
- 11. ¿Qué significa redefinir los métodos estáticos en Java?
- 12. Desventajas de los métodos estáticos en PHP
- 13. Los métodos estáticos en C++
- 14. Métodos estáticos en una interfaz/Resumen Clase
- 15. JUnit: prueba la clase auxiliar con solo métodos estáticos
- 16. ¿Cómo y cuándo están dispuestos los miembros estáticos C#?
- 17. ¿Cuál es la diferencia entre los métodos estáticos en una clase no estática y los métodos estáticos en una clase estática?
- 18. En Java, ¿los miembros de la clase estáticos están compartidos entre los programas?
- 19. ¿Por qué se desaprobaron la mayoría de los métodos java.util.Date?
- 20. ¿Por qué Java exige la compatibilidad del tipo de devolución para los métodos estáticos anulados?
- 21. ¿Por qué utilizar un singleton en lugar de métodos estáticos?
- 22. Métodos estáticos en PHP
- 23. Inicializadores estáticos y métodos estáticos En Java
- 24. ¿Por qué no puedo declarar métodos estáticos en una interfaz?
- 25. PHP llegar métodos estáticos
- 26. ¿Por qué una clase interna no estática no puede tener miembros estáticos (campos y métodos)?
- 27. métodos estáticos C++ Singleton Vs
- 28. Rendimiento del uso de métodos estáticos frente a la creación de instancias de la clase que contiene los métodos
- 29. ¿Por qué los métodos de String.prototype están disponibles para los literales de cadena?
- 30. ¿Los miembros estáticos de una clase genérica están vinculados a la instancia específica?
y, no son polimórficos/virtuales. – ChrisW
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. –