Spanish subtitles

← 12-17 Definir y llamar a un método - Solución

12-17 Definir y llamar a un método - Solución

Get Embed Code
13 Languages

Showing Revision 4 created 10/04/2015 by Frank Gaona.

  1. Hagamos el primer paso juntos,
  2. para agregar un nuevo método
    en la MainActivity.
  3. Puedes escoger cualquier parte del archivo
    para agregar el método,
  4. siempre que se encuentre
    fuera de las llaves de otro método.
  5. Voy a agregarlo justo por debajo
    del otro método que hemos definido,
  6. que era calculatePrice.
  7. Digo private para el
    modificador de acceso,
  8. porque lo único que
    accederá a este método
  9. está dentro de la MainActivity.
  10. Luego digo string para el tipo de retorno,
  11. porque el método createOrderSummary
    debe retornar un string.
  12. Y luego el nombre del método
    que es createOrderSummary.
  13. Luego debe tomar como entrada
    un precio, que es un número.
  14. Bueno, terminamos la firma del método,
  15. pero ahora tenemos
    que implementar el método
  16. para que retorne este mensaje.
  17. El mensaje comienza con el nombre,
    una cantidad, un total y luego, "gracias".
  18. Entonces copiaré esto,
  19. y lo pegaré en el método
    createOrderSummary.
  20. Ahora, podemos empezar
    con algún código base.
  21. La diferencia ahora es que el resumen
    de la orden debe comenzar
  22. con un nombre y no con el precio total.
  23. Entonces, moveré esto a la siguiente línea
    y lo guardaré para más tarde.
  24. Inicializaré la variable priceMessage
    a "Name: Kaptain Kunal".
  25. En la siguiente línea,
    actualizaré priceMessage.
  26. Le agregaré al mensaje existente,
  27. entonces diré priceMessage
    más el nuevo texto,
  28. quiero añadir "Quantity: "
    y luego añadir la variable quantity.
  29. Como quantity es una variable global,
  30. podemos accederla dentro de este método.
  31. Bien, ya tenemos el nombre y la cantidad.
  32. En la línea siguiente
    actualizaré priceMessage nuevamente
  33. y añadiré más texto.
  34. En realidad se supone que este texto
    sea el precio total,
  35. así que puedo usar lo que teníamos antes.
  36. Bien, y luego en la última línea
    actualizamos priceMessage de nuevo.
  37. Tomamos el valor actual
    de la cadena de caracteres
  38. y le añadimos, "Thank you!".
  39. Todo esto se ve bien,
    pero todavía hay un error aquí.
  40. Dice que falta la sentencia return.
  41. Dado que se supone que retornemos
    un resumen de cadena de caracteres,
  42. tengo que añadir otra línea de código
    que diga return.
  43. y luego el valor de retorno.
  44. En este caso, el valor de retorno
    es priceMessage.
  45. Y añado un punto y coma al final también.
  46. Bien, ahora el error se ha ido.
  47. Parece que nuestro código está bien,
    así que voy a ejecutarlo y probarlo.
  48. Bien, entonces si ahora cambio
    la cantidad a 3,
  49. y pulso el botón Order, no funciona.
  50. Veamos qué pasa.
  51. Mirando el código más de cerca,
    veo cuál es el problema.
  52. Hay una advertencia aquí que dice
    que el método privado createOrderSummary
  53. nunca se utiliza.
  54. Me olvidé de llamarlo.
  55. Volvamos a la diapositiva
    del cuestionario.
  56. Bien, entonces hicimos
    la primera tarea con éxito
  57. pero ahora tengo que llamar
    al método createOrderSummary
  58. desde el método submitOrder.
  59. Volviendo a Android Studio,
    tengo que arreglar el método submitOrder.
  60. He calculado el precio,
    lo cual es correcto.
  61. Pero ahora tengo que pasarlo
    al método createOrderSummary.
  62. Así que voy a hacer eso aquí,
    createOrderSummary
  63. con la variable price.
  64. El valor de retorno de este método
    quedará almacenado
  65. en la variable priceMessage.
  66. Ya no necesito esta línea de código
    porque "Thank you"
  67. ya está en el texto aquí abajo.
  68. Así que lo puedo borrar.
  69. Luego para actualizar la pantalla
  70. lo que tengo que hacer
    es llamar a displayMessage
  71. con la variable priceMessage como antes.
  72. Ahora ejecutemos la aplicación de nuevo.
  73. Si cambio la cantidad a 3
  74. y pulso el botón Order,
    todavía sigue sin funcionar.
  75. La mayor parte del texto está en una línea
  76. cuando debería estar en varias líneas,
  77. entonces volvamos
    y corrijamos nuestro código.
  78. Mirando este código
  79. me doy cuenta de que me olvidé
    el carácter de nueva línea.
  80. Lo añadí correctamente para "Thank you"
    pero no para las demás.
  81. Así que voy a añadirlo
    a las otras líneas ahora.
  82. Bien, ejecutémoslo de nuevo.
  83. Y funciona.
  84. Impresionante.
  85. Ahora Kaptain Kunal
    puede tomar sus tres tazas de café.
  86. Quiero mostrarte algunas
    otras optimizaciones
  87. que puedes hacer en tu código.
  88. Nota que podrías haber llamado
    al método calculatePrice
  89. dentro del método createOrderSummary
  90. en lugar de pasarlo
    como parámetro de entrada.
  91. Así que podría haber puesto
    calculatePrice aquí.
  92. Eso habría funcionado también.
  93. Pero quería mostrarte
    que puedes tomar la salida de un método
  94. y pasarlo como entrada a otro método.
  95. Así que vamos a dejarlo como estaba antes.
  96. Dentro del método createOrderSummary,
  97. la otra cosa que hubiera hecho
    es utilizar el operador +=.
  98. Es una forma abreviada,
  99. y significa lo mismo que
    priceMessage = priceMessage + todo esto.
  100. Así que si cambio todo esto
  101. para que sea +=,
    sería lo mismo que tenía antes.
  102. Con esto escribes menos
    y tu código es más conciso.
  103. En el método calculatePrice,
  104. otra cosa que hubiera hecho
    es retornar el valor inmediatamente
  105. en lugar de almacenarlo
    en una variable local y luego retornarlo.
  106. Esto también conduce
    a un código más conciso.
  107. Y luego aquí, en el método submitOrder,
  108. en lugar de crear el
    resumen de la orden,
  109. almacenarlo en una variable
    y usarlo inmediatamente después,
  110. podría haber llamado a createOrderSummary
    y luego a displayMessage.
  111. Esto conduce a lo mismo.
  112. El valor de retorno del método
    createOrderSummary es
  113. una cadena de caracteres,
  114. y será pasado como argumento de entrada
    al método displayMessage.
  115. Puedes dejarlo así si quieres,
    si es más fácil de leer.
  116. Todos estos consejos y trucos
    conducen a la misma lógica de todos modos.
  117. Antes de que lo olvide,
  118. también recuerda añadir
    un comentario Javadoc
  119. en la parte superior de este método
    para describir lo que hace.
  120. Técnicamente no es necesario
    un comentario Javadoc
  121. para un método privado,
  122. pero es de buena práctica
    escribir la descripción de un método,
  123. así otras personas que lean tu código
    podrán entender lo que trataste de hacer.
  124. La descripción de este método
    es que crea un resumen de la orden.
  125. El parámetro de entrada
    es el precio de la orden,
  126. y retorna el resumen de texto.