Diferencia entre revisiones de «Usuario:Santolaria/apuntesmetodos/metodos»

De WikiEducator
Saltar a: navegación, buscar
 
(2 revisiones intermedias por el mismo usuario no mostrado)
Línea 21: Línea 21:
 
=== Estructura de un método ===
 
=== Estructura de un método ===
  
  public static nombreMetodo (parametros) {
+
  public static void nombreMetodo (parametros) {
//código que repetimos
+
    //código que repetimos
 
  }
 
  }
  
Línea 28: Línea 28:
  
 
* '''public''', significa que es un método público y no privado, esto seguramente lo profundizaremos cuando estudiemos las clases.
 
* '''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.
+
* '''static''': En clase nos introdujeron en el mundo de los objetos, y nos explicaros que estático quiere decir que no hace falta instanciar la clase que lo contiene para usarlo.
 
* '''nombreMetodo''': El nombre del método que vayamos a crear. Puede ser cualquier nombre.
 
* '''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.
 
* '''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".
+
Esa es la cabecera, lo que "identifica la caja". Hay que decir que despúes del static se pone el tipo del return ( si no devuelve nada escribiremos '''void'''), que lo veremos más adelante, para decirle al método lo que devolverá.
 
Después la caja se abre con la apertura de la llave '''{'''
 
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.
 
Dentro está el cuerpo del método, el código que necesitamos que se repita varias veces en nuestro programa.
Línea 56: Línea 56:
  
 
  switch (num) { //el switch evalúa num y mira qué caso coincide
 
  switch (num) { //el switch evalúa num y mira qué caso coincide
case 1:
+
    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
+
        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);
+
        System.out.println("La suma de los números anteriores es" + resultado);
case 2:
+
        break;
resultado = restaCalculo(num2); //el parámetro debe ser la variable num2, luego en el método ya pasará a llamarse numero2
+
    case 2:
System.out.println("La suma de los números posteriores hasta el 10 es" + resultado);  
+
        resultado = restaCalculo(num2); //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);
 +
        break;  
 
  }
 
  }
  

Última revisión de 07:07 24 oct 2020




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 void 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 no hace falta instanciar la clase que lo contiene para usarlo.
  • 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". Hay que decir que despúes del static se pone el tipo del return ( si no devuelve nada escribiremos void), que lo veremos más adelante, para decirle al método lo que devolverá. 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);
        break;
    case 2:
        resultado = restaCalculo(num2); //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);
        break; 
}


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; //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
}

Esto se lee así:

  1. Empieza el programa; lee y luego muestra el menú.
  2. Según el número que metamos, num, hará una cosa u otra.
  3. Al llegar al nombre de la función, se parará y buscará el método entre el código, después ejecutará el código metido en el método y al finalizar volverá al main, donde seguirá leyendo desde donde había parado.



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);