El sitio web de Jesús García García-Doncel.

Métodos en Java

En este post voy a explicar como trabajar con los métodos en Java. Todos los lenguajes de programación tienen métodos, aunque pueden referirse a ellos como funciones o procedimientos.

Un método es una colección de sentencias que realizan una tarea específica. Puede retornar un valor que podemos utilizar en nuestro programa o no retornar ninguno, esto es opcional. Empleando métodos ahorramos tiempo al no tener que reescribir un conjunto de sentencias varias veces. Sencillamente, cuando tengamos que ejecutar la tarea que realiza el método, llamaremos al mismo sin tener que teclear de nuevo todas las sentencias de la tarea.

Declaración

En la siguiente figura, se puede observar la sintaxis de declaración de un método:

sintaxis de un metodo en Java

  • Modificador: Palabra reservada empleada para indicar el alcance del método (private o public). Hay otro modificador posible que es la palabra reservada static, que se emplea para indicar que el método puede ser invocado sin necesidad de crear un objeto de la clase. En realidad, hasta ahora hemos estado utilizando el método main que es de este tipo, ya que al ser el primero en ejecutarse necesitamos poder ejecutarlo sin crear ningún objeto antes.

En el cuaderno de Clases y Objetos veremos en detalle el uso de este modificador.

  • Tipo de retorno: Como indique anteriormente, un método puede retornar un valor. En la declaración del método, hay que indicar el tipo del valor que devuelve. Si el método no devolviera ningún valor, utilizaríamos la palabra reservada void.
  • Nombre del método: Para poder referirnos al método en nuestros programas, tenemos que ponerle un nombre. Usualmente será una palabra o varias juntas, que tenderán a ser lo más descriptivas posible de la acción que realiza el método.

La práctica habitual es empezar el nombre en minúsculas y en el caso de que concatenemos varias palabras, poner en mayúsculas la primera letra de dichas palabras. Por ejemplo: encontrarMáximo, calcularResultado….

  • Lista de parámetros: Lista de parámetros que serán usados por el método. Tenemos que poner un nombre a cada uno de ellos y declarar su tipo.

Los tipos de los parámetros pueden ser de cualquier tipo: primitivos o definidos por el usuario. Los tipos primitivos se pasan por valor, es decir, se pasa el valor del parámetro o variable, con lo que el método no modifica el valor de esta sino que sencillamente emplea el valor de la misma.

  • Cuerpo del método: Donde incluimos todas las instrucciones que va a ejecutar el método.

Llamada a un método

Para ejecutar un método, los llamamos por su nombre desde la parte del código en la que queramos que se ejecute. En la llamada, le vamos a pasar los parámetros que requiere y podremos guardar el valor que devuelva en una variable del tipo adecuado.

Para entender como funcionan los métodos, vamos a realizar la siguiente actividad.

Actividad 11.1: Practicando métodos

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Introduce el siguiente código:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class PracticandoMetodos {

    public static void main(String args[]) {

    double nota;

    nota = calcularNota(4.5,7.7,true);

    System.out.println(«Nota = » + nota);

    }

    private static double calcularNota (double notaExamen, double notaTrabajoGrupo, boolean ratioAsistencia){

        double notaFinal = notaExamen*0.6+notaTrabajoGrupo*0.4;

        if (notaFinal>=5.0 && ratioAsistencia){

            return notaFinal;

        }

        return 0.0;

    }

}

Línea 4: Llamada al método calcularNota. Este método devuelve un valor de tipo double que guardamos en la variable nota. Pasamos los parámetros al método introduciendo directamente unos valores, aunque podríamos haber usado variables.

Línea 7: Declaramos el método. Es privado, lo que significa que no puede ser llamado fuera de la clase en la que está. La Clase la hemos llamado PracticandoMetodos.

Tenemos que añadir la palabra reservada static porque vamos a llamarlo desde un método static (el método main).

El valor que devuelve el método es del tipo double y el método tiene tres parámetros.

Línea 9: Calculamos la nota final considerando el porcentaje de contribución de cada nota. El resultado lo guardamos en la variable notaFinal.

Línea 11: Si la expresión de la sentencia if es evaluada como verdadera, se ejecutará esta línea y la sentencia return devolverá el valor de notaFinal y saldrá del método.

Línea 13: Si la expresión de la sentencia if es evaluada como falsa, se ejecutará esta línea y el método devolverá el valor 0.0 

  1. Ahora vamos a utilizar la Clase Scanner para pedirle al usuario que introduzca los datos que pasaremos al método:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

17

18

19

20

21

22

 

23

24

25

26

27

28

29

import java.util.Scanner;

 

public class PracticandoMetodos {

    public static void main(String args[]) {

    double nota;

    //introducción de datos

    Scanner sc1=new Scanner(System.in);

    System.out.println(«Introduce la nota del examen: «);

    double examen = sc1.nextDouble();

    Scanner sc2=new Scanner(System.in);

    System.out.println(«Introduce la nota del trabajo de grupo: «);

    double trabajo = sc2.nextDouble();

    Scanner sc3=new Scanner(System.in);

    System.out.println(«Tiene el grado de asistencia requerido para aprobar la asignatura? (true/false): «);

    boolean ratio = sc3.nextBoolean();

 

    //calculo e impresión de la nota

    nota = calcularNota(examen,trabajo,ratio);

    System.out.println(«Nota = » + nota);

    sc1.close(); sc2.close(); sc3.close();

    }

    private static double calcularNota (double notaExamen, double notaTrabajoGrupo, boolean ratioAsistencia){

        double notaFinal = notaExamen*0.6+notaTrabajoGrupo*0.4;

        if (notaFinal>=5.0 && ratioAsistencia){

            return notaFinal;

        }

        return 0.0;

    }

}

 

Sobrecarga de métodos

Es una característica que permite que una clase tenga varios métodos con el mismo nombre, siempre que la lista de sus argumentos sea diferente.

Veamos como funciona esto en un ejemplo.

Actividad 11.2: Practicando métodos

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Introduce el siguiente código:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class SobrecargaMetodos {

    public static void main(String args[]) {

     

      int x=10; int y=25; int z=5;

     

      int area = multiplicar (x,y);

      int volumen = multiplicar (x,y,z);

       

      System.out.println(«AREA = » + area);

      System.out.println(«VOLUMEN = » + volumen);

    }

    private static int multiplicar (int num1,int num2){

        return num1*num2;

    }

    private static int multiplicar (int num1,int num2, int num3){

        return num1*num2*num3;

    }

}

 

Línea 4: Declaración y asignación de tres variables que usaremos para pasar sus valores a nuestros métodos.

Línea 6: Declaración de la variable área de tipo integer y llamada al método multiplicar empleando dos parámetros. La variable área será inicializada con el valor que devuelva el método.

Línea 7: Declaración de la variable volumen de tipo integer y llamada al método multiplicar empleando tres parámetros. La variable volumen será inicializada con el valor que devuelva el método.

Línea 12 a 14: método multiplicar con dos parámetros.

Línea 15 a 17: método multiplicar con tres parámetros (Sobrecarga de métodos)

Y si ejecutamos el programa, obtendremos el resultado:

AREA = 250VOLUME = 1250

 

NOTA:

Este post es parte de la colección “Java” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.

Anterior

Ejercicios de funciones de entrada y salida en Java

Siguiente

Ejercicios con métodos en Java

2 comentarios

  1. Mercedes

    Hola, el primer ejercicio me da error en el método

    • admin

      Hola Mercedes,

      Tienes razón.
      Resulta que al copiar el código del compilador online al post, las comillas («) me las copia como («). Si sustituyes este último carácter por comillas, verás que te funciona perfectamente.
      Gracias por avisar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Funciona con WordPress & Tema de Anders Norén