Tutoriales de informática - Abrirllave.com

Abrirllave.com

Funciones en Java

EJEMPLO { MultiplicarNumeros } Supongamos que se quiere escribir un programa que solicite dos números enteros por teclado al usuario y, después, calcule la multiplicación de dichos números, mostrando por pantalla el resultado. Por ejemplo, en pantalla se podría ver:

Ejecución del programa MultiplicarNumeros escrito en Java, donde se muestra la multiplicación de dos números introducidos por el usuario.

Para ello, en Java se puede escribir el siguiente código:

import java.util.Scanner;

public class MultiplicarNumeros
{
    public static void main(String[] args)
    {
        int n1, n2, producto;
        Scanner teclado = new Scanner(System.in);

        System.out.print("Introduzca el primer número: ");
        n1 = teclado.nextInt();

        System.out.print("Introduzca el segundo número: ");
        n2 = teclado.nextInt();

        producto = n1 * n2;

        System.out.printf("La multiplicación es: %d", producto);
    }
}

No obstante, si se quisiera considerar la realización de la multiplicación como una función, teniendo en cuenta que en Java las funciones se implementan como métodos, la solución podría ser:

import java.util.Scanner;

public class MultiplicarNumeros2
{
    public static void main(String[] args)
    {
        int n1, n2, producto;
        Scanner teclado = new Scanner(System.in);

        System.out.print("Introduzca el primer número: ");
        n1 = teclado.nextInt();

        System.out.print("Introduzca el segundo número: ");
        n2 = teclado.nextInt();

        producto = multiplicar(n1, n2);

        System.out.printf("La multiplicación es: %d", producto);
    }

    private static int multiplicar(int x, int y)
    {
        return x * y;
    }
}

Véase que, se ha llamado al método multiplicar, pasándole los parámetros actuales n1 y n2:

producto = multiplicar(n1, n2);

Al hacer la llamada a multiplicar, los parámetros formales x e y reciben los valores (datos) de n1 y n2 –fíjese que son del mismo tipo (int, int)– haciéndose una copia de dichos datos. Por lo que, aunque este no sea el caso, si los valores de x e y fuesen modificados dentro de multiplicar, los valores de n1 y n2 no se verían afectados.

private static int multiplicar(int x, int y)
{
    return x * y;
}

Respecto al método multiplicar, fíjese que se ha declarado: