Usuario:Santolaria/apuntesmetodos/metodos

De WikiEducator
Saltar a: navegación, buscar




Icon summary.gif
Nota

Mi intención es dejarnos de tecnicismos y hablar en un lenguaje sencillo y fluido para que lo entendáis. Si no entendéis algo siempre podéis mirar los recursos de apoyo.



Los métodos

Como ya dije en la introducción, los métodos no son en ningún momento obligatorios, pero sí muy recomendables si quieres ahorrar tiempo y esfuerzo. Ya os dije de alguna manera lo que es un método. Aquí analizaremos y comprobaremos su estructura, cómo se comportan en nuestro código y os dejaré algún ejemplo. Veamos los métodos como cajas cuya dimensión está definida por las llaves { y }

Estructura de un método

public static nombreMetodo (parametros) {
//código que repetimos
}

¿Qué hace esto? Vayamos línea por línea.

  • public, significa que es un método público y no privado, esto seguramente lo profundizaremos cuando estudiemos las clases.
  • static: En clase nos introdujeron en el mundo de los objetos, y nos explicaros que estático quiere decir que puede ser usado por todas las clases y no solo en la clase en la que hemos creado el método.
  • nombreMetodo: El nombre del método que vayamos a crear. Puede ser cualquier nombre.
  • Parámetros: Un método al ser código necesita trabajar con unas variables que ya existen, pero están en el main y, como partimos de 0, tenemos que "introducirlas" en el método. Esas variables que el método necesita y que ya existen las podemos pasar por parámetros. Así el método sabrá nada mas empezar el código qué valores tiene.

Esa es la cabecera, lo que "identifica la caja". Después la caja se abre con la apertura de la llave { Dentro está el cuerpo del método, el código que necesitamos que se repita varias veces en nuestro programa. El código es normal, como los que hemos estado haciendo. Al final, cerramos con } para señalar que nuestro método ha finalizado.

Comportamiento en el código

Ya sabemos la estructura de un método, ¿pero qué se pone en cada casilla? Esto se ve mejor con ejemplos.

Icon activity.jpg
Ejemplo con métodos

Pongamos un ejemplo tan sencillo como un menú para realizar 2 tareas muy sencillas.

//esto va dentro del main
//la parte de pedir y leer las variables num (que será el número que elije la opción) y num2 (lo usaremos en las operaciones) supongo que ya sabéis como se hace
System.out.println("MENU PRINCIPAL);
System.out.println("1 - Sumar hasta " + num);
System.out.println("2 - Restar desde 10 hasta" + num);
switch (num) { //el switch evalúa num y mira qué caso coincide
case 1:
resultado = sumaCalculo(num2); //guardo en la variable resultado el valor que devuelve el método; el parámetro debe ser la variable num2, luego en el método ya pasará a llamarse numero1
System.out.println("La suma de los números anteriores es" + resultado);
case 2:
resultado = restaCalculo(num2) // guardo en la variable resultado el valor que devuelve el método; el parámetro debe ser la variable num2, luego en el método ya pasará a llamarse numero2
System.out.println("La suma de los números posteriores hasta el 10 es" + resultado); 
}


empezamos con los métodos

public static int sumaCalculo ( int numero1) { // le pasamos como parametro num2, aunque se llame distinto
   int suma = 0; //tenemos que declararla e inicializarla, ya que sólo la necesitamos aquí, se borrará automáticamente una vez finalizado el método: es una variable local
   for (int i=0;i<numero1;i++) {
       suma = suma + i;
   }
   return suma; //devolvemos el valor que contiene suma al main
}
public static int restaCalculo ( int numero2) { // le pasamos como parametro num2, aunque se llame distinto ,porque podemos llamarlo como se quiera
  int suma = 0; //tenemos que declararla e inicializarla, ya que sólo la necesitamos aquí, se borrará automáticamente una vez finalizado el método: es una variable local
  for (int i=10;i<numero2;i++) { //en este caso, el método no conoce la variable numero1 ni num2, solo la variable pasada por parámetro, numero2
       suma = suma + i;
  }
  return suma; //devolvemos el valor que contiene suma al main
}



Como vemos en el ejemplo lo mismo se puede hacer de dos formas:

  1. Poniendo el código de cada método en su lugar dentro del switch, lo que nos dejaría con muchas líneas de código
  2. O dejarlo con métodos, y entonces el main queda más limpio y más corto.

Recordad que luego, si queremos hacer de nuevo esas operaciones, no tendremos más que llamar al método escribiendo

nombreMetodo (numero con el que quieras trabajar, el que quieres que sea numero1 o numero2 en los métodos del ejemplo);