YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Spanish, Mexican subtitles

← Creating a Static Method

Get Embed Code
4 Languages

Showing Revision 2 created 07/03/2015 by carlos_upload.

  1. Intentemos esto. Yo pondría toda esta funcionalidad en un método, dame
  2. un minuto para arreglar eso y después te lo mostraré. Tal como lo prometí, aquí está el método.
  3. Este método sigue leyendo un número entero hasta que encuentra
  4. uno que está dentro del rango deseado y después lo
  5. devuelve. El código exacto no es realmente importante en
  6. este momento. Puedes verlo en la
  7. distribución de código si quieres. Y, aquí,
  8. estoy llamándolo. Pero hay un problema. Cuando lo compilo
  9. me sale un mensaje de error. Y, ese mensaje de
  10. error, ahora mismo, en verdad debe aparecer como incomprensible para ti.
  11. Habla de métodos no estáticos y métodos estáticos.
  12. Así que déjame explicarte qué está pasando y por qué el
  13. compilador no está contento. Normalmente, llamamos a un método en un
  14. objeto y no hice eso aquí porque
  15. pensé, bueno, estoy en ElevatorDemo, así que
  16. debo ser capaz de llamar cualquier método de demo de elevador
  17. también. Pero el problema es que estoy llamando desde
  18. principal. Así que no hay objetos de demo de elevador y
  19. el compilador se queja. Así que regresando aquí, esto es
  20. el quid del problema, readBetween no se llama
  21. en un objeto. Y en realidad no hay un gran
  22. objeto en donde llamarlo. Hubiera sido lindo
  23. llamarlo en el escáner, pero como ya te
  24. dije, no podemos hacer eso. Cuando estés en este
  25. tipo de situación en donde tienes un método que
  26. en realidad no puede ser llamado en un objeto, entonces haces
  27. un método estático. El método estático es un método que no se llama en cualquier
  28. objeto. Así que, un remedio es, simplemente regresar al demo de
  29. elevador. Y declarar el método estático auxiliar. De esta manera. Ahora todo
  30. estará bien. Y el error de sintaxis ha desaparecido. Así que para responder a nuestra pregunta original,
  31. es perfectamente legítimo poner readBetween dentro de
  32. ElevatorDemo como un método estático, pero tal vez
  33. no es óptimo. ¿Qué sucede si quiero
  34. utilizar ese método perfectamente ingenioso en otra
  35. clase? Así que en realidad, readBetween es un método que parece que sería útil en cualquier
  36. situación que quieras leer un valor de
  37. cierto rango. Así que realmente querríamos poner
  38. esto en otro lugar, y la clase en la que lo voy a poner
  39. la llamaré IO Helper. He
  40. preparado esa clase para ti, déjame enseñarte.
  41. Aquí está la clase IO Helper. Aquí está el método
  42. readBetween. Y una vez más, eso es un método
  43. estático ya que en realidad no voy a hacer
  44. algún objeto de la clase IO Helper. Sólo quiero
  45. que sea el hogar para este método. Esto significa
  46. que cuando llame el método, tendré que especificar
  47. el nombre de la clase así. Aquí
  48. ves el nombre de la clase, IO Helper, el nombre
  49. del método. Los métodos estáticos no son muy comunes ya que,
  50. como he dicho, la mayoría de las veces, un objeto real
  51. es responsable de llevar a cabo un método, pero sí
  52. se usan. De hecho, has visto algunos de ellos. En
  53. la lección cuatro, viste una buena cantidad de métodos estáticos
  54. en la clase Matemáticas. De nuevo, la sintaxis es el nombre
  55. de la clase, un período, y después el nombre
  56. del método. Y una vez más, no hay ningún objeto de
  57. la clase Matemáticas. Simplemente llamamos el método de raíz cuadrada
  58. directamente en la clase. Ahora, quizás te preguntes ¿Porqué
  59. tenemos que utilizar el método estático? ¿Por qué
  60. simplemente no podemos llamar el método en el número
  61. 2? Bueno, así es Java. En
  62. Java, los números no son objetos así que nunca puedes llamar
  63. a un método en un objeto. Una llamada
  64. como 2 raíz cuadrada podría ser más lógico, pero
  65. es un error. Así que, para resumir el método estático.
  66. Pertenece a una clase. No se llama en un objeto y en realidad no son del todo
  67. común. ¿Por qué se les llama
  68. métodos estáticos? En realidad, no hay una buena razón. Eso es
  69. un remanente de otro lenguaje de programación
  70. mucho más viejo. No hay nada específicamente estático sobre ellos.
  71. Además de los métodos estáticos, hay variables
  72. estáticas. Veámoslas a continuación.