Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta
>

Programación Modular

Objetivo

Aprender a modular los programas

Producto a Entregar

Un archivo comprimido con el programa generado en la actividad y un archivo de texto con las preguntas que se encuentran en negritas contestadas.

Forma de Trabajo

Equipos

Tiempo estimado

30 minutos

Forma de Entrega

Por Blackboard

Recomendaciones

  • Sigue las instrucciones de la actividad y ejercita la lectura crítica.
  • Recuerda que utilizar métodos te ayuda a tener código más claro, más corto y más elegante.
  • Hay dos tipos de métodos: funciones, que devuelven un valor y procedimientos, que no lo devuelven.

 

Instrucciones

Paso 1:

Descarga el esqueleto de la aplicación que vamos a utilizar en esta sesión. Abre NetBeans, compílalo y corre el programa. Tendrás una interfaz gráfica similar a la siguiente:

Paso 2:

Selecciona el botón "a Kilogramos" y haz click derecho. Selecciona events->action->actionPerformed. En el código podemos ver que tenemos que crear un método toKilograms() que recibe como parámetro un valor de tipo double que representa la cantidad de gramos que vamos a convertir y regresa un valor de tipo double que representa la cantidad de kilogramos a la que se convirtió.

Al crear un método debemos hacernos una serie de preguntas que nos van a permitir saber qué tipo de método queremos llamar:

  • ¿Qué tipo de acceso va a tener el método? Sabemos que el método sólo va a ser utilizado dentro de esta misma ventana, por lo que podemos ponerle un tipo de acceso private.
  • ¿Qué tipo de método es? Es un método normal por lo que no debemos poner ninguna palabra clave (como static o abstract).
  • ¿Qué valor de retorno tiene? En este caso nos dicen que el método nos va a devolver un double, pero muchas veces tenemos que pensar qué tipo de dato es el que mejor representa cierto problema.
  • ¿Qué nombre tiene? Nos dicen que el método se va a llamar toKilograms(), es muy importante siempre seleccionar un nombre de método que sea fácil de entender y que nos diga para qué sirve el método. Por ejemplo, el método convert() podría hacer conversiones de cualquier tipo y no es muy preciso, mientras que el método toKilograms() nos dice que va a convertir a kilogramos. En este caso no es muy importante decir que convierte de gramos porque eso lo podemos ver en los parámetros.
  • ¿Qué parámetros recibe? Una vez más nos dicen que sólo recibe un parámetro llamado grams de tipo double que representa cuántos gramos hay que convertir.

Una vez que hayamos termiando de decidir esto podemos hacer el encabezado del método, recuerda que siempre el encabezado debe estar en el mismo orden que las preguntas que hicimos. El encabezado para el método quedaría de la siguiente manera:

Ahora debemos escribir el método en algún lugar que se encuentre adentro de la clase pero que no se encuentre adentro de un método, las flechas en la siguiente imagen marcan lugares donde podría ponerse el método. Podemos utilizar cualquiera de esos lugares, pero se recomienda que utilicemos alguno de los lugares que tienen flecha roja, ya que se encuentran al final de la clase y son fáciles de encontrar cuando estamos revisando el código.

Después del encabezado debe ir el cuerpo del método, en este caso el método nos sirve para convertir de gramos a kilogramos, que es algo muy sencillo, por lo que sólo debemos poner una línea en cualquier lugar que esté dentro de la clase pero que esté fuera de cualquier método que multiplique los gramos por 0.001 de la siguiente manera:

Recuerda que la palabra clave return nos permite indicarle al programa qué va a regresar ese método, es decir, cuál va a ser el valor de retorno. En este caso el método va a regresar los gramos multiplicados por 0.001, con lo que los convertimos a kilogramos.

Por último mandamos llamar el método toKilograms() para convertir a kilos dentro del código del botón.

Modifica el código para que valide que los gramos sean un número positivo.

Paso 3:

Ahora pasemos al segundo botón. El botón debe convertir la cantidad de gramos a libras, pero no nos dan la equivalencia de gramos a libras directamente sino que nos dan la equivalencia de kilogramos. Por suerte podemos utilizar el método que creamos en el paso anterior y crear un nuevo método que convierta de kilogramos a libras.

Contesta las siguientes preguntas en un archivo de texto:

  • ¿Qué tipo de acceso va a tener el método?
  • ¿Qué tipo de método es?
  • ¿Qué valor de retorno tiene?
  • ¿Qué nombre tiene?
  • ¿Qué parámetros recibe?

Utilizando tus respuestas podemos ver que el método va a ser similar al siguiente:

Fíjate que en este caso el parámetro se llama kilograms. Esto es muy importante ya que nos permite saber qué recibe el método. Es muy importante que nuestros parámetros tengan nombres claros que nos digan qué es lo que recibe el método para que no nos confundamos al llamarlos.

Ahora al mandar llamar este método debemos realizar un cambio intermedio utilizando el método anterior. Podríamos estar pensando que sería mucho más lógico crear un método que directamente convirtiera de gramos a libras, pero sí tiene sentido que lo hagamos por partes. Muchas veces cuando nos dan los requerimientos del usuario no están muy claros y los métodos podrían cambiar aunque no cambie la lógica del programa. Por ejemplo, podría ser que al inicio el usuario considere que los resultados son correctos si tienen tres decimales correctos y no es necesario utilizar medidas muy precisas pero al crecer el programa solicita mayor precisión y si no tuvieramos todo dividido por métodos tendríamos que modificar varias fórmulas que probablemente tendríamos que calcular a mano.

Para ejemplos más complicados esto tiene mucho más sentido. Por ejemplo, podríamos crear un método que leyera todos los usuarios de una base de datos y los ponga en una lista, si la base de datos cambia no necesitamos cambiar todo el programa sino únicamente el método.

Ahora utilicemos el método que acabamos de crear para convertir de gramos a libras utilizando el siguiente código:

Como puedes ver no tenemos que hacer muchos cambios del código anterior y en caso de que algún día el rey decida cambiar el valor de las libras entonces podemos realizar sólo un cambio al método toPounds() y nuestro programa seguiría funcionando de manera correcta.

Paso 3:

Utilizando los conocimientos sobre métodos que hemos visto en este ejercicio completa los últimos dos botones que faltan. Recuerda responder las siguientes preguntas para cada uno de los métodos que hayas creado y ponerlas en el archivo de texto:

  • ¿Qué tipo de acceso va a tener el método?
  • ¿Qué tipo de método es?
  • ¿Qué valor de retorno tiene?
  • ¿Qué nombre tiene?
  • ¿Qué parámetros recibe?

Comprime tu carpeta de trabajo y el archivo de texto con las preguntas y mándalos por Blackboard.

Ayudanos a mejorar este laboratorio:

¿Cuál es tu opinión del laboratorio?

(1 - buena; 5 - mala).

1       2       3       4       5
¿Cómo se puede mejorar?
¿Encontraste un error? ¿Cuál?

Ayudanos contestando la siguiente encuesta acerca de Videojuegos!
Ir a la encuesta