Una función en Java es un fragmento de código, unas cuantas líneas de programación, que resuelven un problema único y muy puntual, que se puede reutilizar cuantas veces sea necesario a lo largo de un proyecto o programa de mayor tamaño.
Java permite la creación de funciones asignándoles un nombre propio que las diferencia entre ellas y facilita su utilización según sean llamadas en la secuencia de ejecución de la aplicación.
Para codificar funciones que sean útiles es importante tener claro cuál será la tarea que van a cumplir y ceñirse a esta de manera estricta, es decir, una función para cada tarea concreta.
Las funciones en Java siguen una estructura similar a esta:
[acceso][modificador] tipo nombre(tipo nombre argumento1, tipo nombre argumento2) {
instrucciones
return;
}
El acceso puede ser public o private, es decir, podrá ser invocado solo dentro de la clase donde se encuentra o también en todo el programa.
El modificador será final y/o static.
El tipo se refiere al tipo de dato que va a retornar o devolver al programa esa función. El nombre debe asignarse haciendo referencia a la tarea que hace esa función, esto facilita la lectura y comprensión del código.
En cuanto a los argumentos deben tener su tipo y estar separados por comas, son los datos que necesita la función para ejecutarse.
La palabra return marca el final de las instrucciones de una función.
El siguiente ejemplo sirve para ilustrar mejor lo que es una función:
public static void main(String[] args) {
// la variable suma contendrá el resultado de llamar a la función sumar la 1ra vez
int suma = sumar(8, 7);
System.out.println("Primer llamado de función: " + suma);
//la variable suma2 contendrá el resultado de llamar a la función sumar la 2da vez
int suma2 = sumar(9, 9);
System.out.println("Segundo llamado de función: " + suma2);
}
// construimos una función de domininio público, estática y de tipo entero
// esta función tiene 2 parámetros de tipo entero
public static int sumar(int num1, int num2) {
// en la variable interna 'sumar' guardamos el resultado
int sumar = num1 + num2;
//return devuelve el resultado de esta función
return sumar;
}
}
Veamos otro ejemplo:
class Main {
public static void main(String[] args) {
// usando la función con un entero
int num = -1;
if (comparar(num)) {
System.out.println("El número es " + num + "es mayor o igual que 0");
} else {
System.out.println("El número es menor que 0");
}
// usando la función con otro entero
int num2 = 9;
if (comparar(num2)) {
System.out.println("El número es " + num2 + " es mayor o igual que 0");
} else {
System.out.println("El número es menor que 0");
}
}
// esta función compara si un número es mayor o igual que 0
// recibe un entero como parámetro y devuelve true o false
public static boolean comparar(int num) {
return (num >= 0);
}
}
La construcción y el uso de funciones en Java ofrece ventajas como:
Cuando comenzamos a trabajar en un proyecto, posiblemente nos parece una tarea que tomará mucho tiempo y esfuerzo. Con la programación de funciones, ese problema se va a dividir en pequeños fragmentos que son más fáciles de manejar y resolver.
Si escribimos una función que resuelve un problema en particular, que se presenta en otra parte del proyecto, podremos invocar la función sin tener que volver a escribir todo el código, esto le da eficiencia a nuestro trabajo.
Si se detecta un error en el código de una función que se usa varias veces a lo largo de todo el código, no será necesario rehacerlo todo, bastará con corregir ese fragmento. Esto también es útil cuando se hace mantenimiento de una aplicación.
Para programar en Java es esencial conocer bien las funciones y cómo se utilizan, por lo tanto, es recomendable realizar ejercicios para practicar el tema hasta manejarlo con destreza.