¿Cuál es la diferencia entre un método público estático y público? ¿Por qué usarías un método público estático?Métodos estáticos públicos vs métodos públicos
Respuesta
Los métodos de la clase Math son estáticos. Por lo tanto, en hacer
Math.round(average)
la clase de matemáticas en sí no cambia por lo que has hecho - que sólo devuelve un valor o actúa sobre el valor que pasa.
Por lo tanto, los métodos estáticos son útiles para las utilidades. Cosas como
StringUtils.removeWhitespaceFrom(textContent:String):String
o
BrowserUtils.openInNewWindow(url:String):void
Es muy inusual que tendrá que utilizar un método estático para cualquier otra cosa. No utilice estáticos como 'getInstance()' para crear Singletons: busque en su lugar un marco para la inyección de dependencias.
métodos estáticos son métodos que una no específica a cualquier instancia de una clase (objeto) que son métodos que no están permitidos para contener esta referencias y se puede acceder a ellos a través de la clase directamente (no las instancias de objeto)
Para aclarar su concepto, suponga que si desea saber cuántas veces se ha creado una instancia de su clase, utilizará el contador de variables estáticas en su constuctor de clase, cada vez que se crea su objeto.
Luego tiene que usar el método estático para acceder a estos datos, de lo contrario puede declarar su variable pública o predeterminada y acceder a ella con el nombre de clase, pero eso infringe los principios de OOP. aquí está el pequeño ejemplo
CAR public class {
Contador var estática privada: int = 0;
función privada CAR() {Counter ++; }
función estática pública ReturnTotalCarInstances(): int { return Counter; }
}
Las variables estáticas tienen sus beneficios eso es por eso que se proporciona en la mayoría de los lenguajes de programación. El conteo de instancias es el uso pequeño de la variable estática. Se usan en un alcance mucho mayor. El punto principal es que se usa para compartir datos globalmente entre todos los objetos de Clase.
Los métodos estáticos se pueden usar como constructores sobrecargados. ActionScript no tiene sobrecarga de funciones, por lo tanto, a veces escribo algo como:
public class Foo {
public static function fromBar(bar:Bar):Foo {
var foo:Foo = new Foo();
... //initializing foo object from bar
return foo;
}
public static function fromBaz(baz:Baz):Foo {
var foo:Foo = new Foo();
... //initializing foo object from baz
return foo;
}
}
- 1. ¿Cuándo debería usar métodos públicos/privados/estáticos?
- 2. ¿Mocking métodos públicos no estáticos en clases abstractas con JMockit?
- 3. iOS: ¿cómo definir los métodos públicos?
- 4. Cómo ocultar los métodos públicos de IntelliSense
- 5. métodos públicos en clases privadas de paquete
- 6. Colección personalizada frente a Colección genérica para métodos públicos
- 7. métodos estáticos C++ Singleton Vs
- 8. Cómo probar campos privados que se modifican mediante métodos públicos
- 9. ¿Cómo ver solo los métodos públicos en Resharper?
- 10. Métodos que utilizan miembros privados o accesadores públicos
- 11. Cómo encontrar fácilmente métodos/propiedades públicos no utilizados
- 12. ¿Por qué no podemos usar assertion para métodos públicos?
- 13. Cómo recuperar todos los métodos públicos desde * .dll
- 14. Getting MethodInfo de métodos protegidos y públicos solamente?
- 15. ¿Debo suprimir CA1062: validar los argumentos de los métodos públicos?
- 16. Deshabilitar VS '"descargar símbolos públicos"
- 17. Accediendo a métodos "públicos" desde métodos "privados" en la clase javascript
- 18. Accesodores contra miembros públicos
- 19. Métodos estáticos vs métodos de instancia en C#
- 20. WPF MVVM - Unidad de prueba de un comando - Privado vs métodos públicos?
- 21. ¿Cuál es la diferencia entre constructores estáticos, internos y públicos?
- 22. Herencia en métodos estáticos
- 23. Métodos estáticos en Java
- 24. php métodos estáticos pregunta
- 25. PHP llegar métodos estáticos
- 26. Métodos estáticos en PHP
- 27. ¿Métodos en línea estáticos?
- 28. Métodos estáticos en ASP.NET
- 29. F # Métodos estáticos privados
- 30. Comparación: métodos de interfaz vs métodos virtuales vs métodos abstractos