Saltar al contenido

¿Qué es una FUNCIÓN (o un método) en programación?

¿Qué es una función en programación?

Las funciones, también llamados métodos, nos permiten dividir el trabajo que hace un programa, en tareas más pequeñas separadas de la parte principal. Ese es el concepto de función en programación.

Veamos un ejemplo: imagina que desarrollas un programa, y una de las partes hace un cálculo de un valor. Puede ser algo simple, como una suma o una resta, pero puede ser un cálculo mucho más complicado, como puede ser la distancia entre dos objetos en un videojuego 3D.

El código que realiza que realiza las tareas del cálculo puede estar en una función. Esta función puede ser usada de forma independiente en diferentes partes del programa, ya sea en programación modular o en un lenguaje orientado a objetos como Java.

Por lo tanto, puedes invocar la función o  método que calcula el total de una clase, o aplicar el resultado de los cálculos.

Definición de una función

Para definir una función, la sintaxis de las declaración es la siguiente:

[Modificadores] tipo_retorno nombre_funcion ([argumentos])
{
    bloque_código;
}

Parece complicado ¡pero no lo es!. Veamos cada una de las partes de una función.

Modificadores de una función

Los modificadores de un método son varias palabras clave , o palabras reservadas de un lenguaje de programación, que puede modificar la forma en que los métodos son usados.

Los modificadores son opcionales, por eso lo hemos indicado en corchetes [].

Ejemplos de modificadores pueden ser public, private, protected, virtual, static

Tipo de retorno de un método

El tipo retorno es el tipo de valor devuelto por la función, y puede ser usado en cualquier parte del programa.

Las funciones sólo pueden devolver un valor, ya sea un tipo de datos básico, como puede ser un número entero o un string, o dependiendo del lenguaje un objeto.

Pero no podría devolver dos números por ejemplo. Eso lo haremos de otra manera.

Nombre de la función

También llamado identificador, es como llamamos a la función.

Depende de cada lenguaje de programación, pero al igual que cuando declaramos una variable, el nombre de la función no puede llevar espacios, por ejemplo suma total es incorrecto, debería ser alguna de estas opciones: sumaTotal, suma_total, SumaTotal, etc.

Tampoco debería de empezar por un número y no puede usarse ninguna palabra reservada para el lenguaje (una función no podría llamarse int).

Argumentos o parámetros de una función

Los argumentos de una función, también llamados parámetros, representa una lista de variables cuyos valores son pasados al método para ser usados por éste.

Suelen ser opcionales, por eso en el ejemplo están en corchetes []. Algunos métodos no aceptan argumentos.

Los parámetros de una función tienen una serie de características que hablaremos un poco más abajo para entrar en detalle.

El bloque de código

El código del método es la secuencia de instrucciones o sentencias que la función realiza.

Estas instrucciones son las tareas que hacen que la función tengan sentido.

Para saber que un bloque de código pertenece a una función, en el ejemplo está entre llaves {}. Así sabemos cuando acaba la función.

En algunos lenguajes nos podremos encontrar otra manera de indicar cuando empieza y termina una función. Por ejemplo, en Visual Basic acabaría como End Sub o End Function, en Pascal tenemos BEGIN y END.

Ejemplo de una función

Aquí tienes un ejemplo de una función de un método que no tiene argumentos y no retorna nada. Total de clase tal es un método básico ejemplo:

public void Dibuja()
{
    println("*******");
}

Un ejemplo de un método que acepta dos argumentos y devuelve un resultado de una suma:


public int Suma(int num1, int num2)
{
    return num1 + num2;
}

Llamadas a funciones en programación

Las pautas para hacer una llamada a una función son:

  • No hay límite en cuanto a la cantidad de llamadas a funciones que un método puede realizar.
  • Se puede invocar a los métodos en cualquier orden.
  • Para funciones en objetos:
    • Los métodos no necesitan ser completados en el orden que son listados en la clase, que es dónde están declarados.
    • El método llamado y el método desde dónde se llama pueden estar en la misma clase o en diferentes clases.

Como pasar argumentos o parámetros a una función

Como hemos dicho anteriormente, las funciones pueden ser invocadas desde otro método, con una lista de argumentos.

Adicionalmente, las funciones pueden devolver un valor para ser usado como resultado. Muchos de los métodos que declaras o usas  desde la biblioteca que te ofrece el compilador del lenguaje también aceptan argumentos.

Pasa pasar argumentos desde un método a otro, se hace desde los paréntesis de la llamada al método.

Los argumentos pasados conservadores literales o variables. Al llamar a un método, se deben listar los argumentos en el mismo orden que dichos argumentos están declarados en la definición del método, además que debenb pasarse todos los argumentos requeridos.

El compilador verificará si el tipo y cantidad de argumentos pasados concuerda con el tipo,  el orden ycantidad de parámetros que acepta el método llamado.

Declarar métodos que devuelven un resultado

La mayoría de las declaraciones de métodos que se han visto en el curso no devuelven un valor(dado por la palabra voy en la declaración del método). Sin embargo, los métodos que se crearán devolverán un valor y muchos de los métodos en las bibliotecas de clase Java también devuelven valores.

Para declarar un método que devuelve un valor, se debe incluir el tipo del valor que devuelve delante del identificador del método en la declaración del mismo. El siguiente ejemplo muestra un método que acepta dos valores del tipo int y devuelve un valor de tipo int:

public int Sum(int a, int b)

Devolución de un valor con return

Para devolver un valor desde un método, se utiliza la palabra clave return. Por ejemplo, el siguiente código devuelve el valor que tiene actualmente la variable result.

return result;

Recepción de valores devueltos

Si se invoca un método que devuelve un valor, como en el caso anterior, se puede utilizar el valor devuelto en el método desde dónde se ha llamado. Veamos esta función:

public int Sum(int a, int b)
{
    return a + b;
}

Se utilizaría de la siguiente manera:

int resultado;
resultado = Sum(4, 5);

Ventajas del uso de funciones en programación

Los métodos son el mecanismo por el cual los objetos interactúan entre sí.

En un programa es común tener varios objetos que interactuan invocando los métodos en forma mutua.

A continuacion se describen algunas ventajas del uso de métodos en los programas:

  • Los métodos hacen que los programas sean más legibles y fáciles de mantener. Por ejemplo, es fácil saber lo que un programa hace si el código está dividido en varios métodos diferentes con nombres que describan el comportamiento de los mismos.
  • Los métodos hacen que el desarrollo y el mantenimiento sea más rápido.Por ejemplo, puedes elegir crear y probar un método por vez cada para asegurar que el programa, en su totalidad, funciona bien cuando se ha finalizado.
  • Los métodos son utlizados para que el software sea reusable.Por ejemplo, la bibliotecas de cualquier compilador tiene muchas clases con métodos que pueden ser usados una y otra vez en los programas.
  • Se puede crear métodos para que otros programadores puedan usar.
  • Los métodos permiten separar los objetos para comunicar y distribuir el trabajo realizado por el programa.

Función main en programación

En casi todos los lenguajes de programación, se utiliza el método main, que debe ser escrito de forma tal que aceptan argumentos uno o más parámetros, pero nos lo encontramos como una array de Strings.

public static void main (String args[])

¿ Por qué el método main debe aceptar estos argumentos?

El lenguaje de programación requiere que el método main se escriba de forma que acepte valores cuando es ejecutado desde la línea de comando (en Windows sería la ventana Símbolo del sistema).

Por ejemplo, si quieres pasar un número con una cantidad de 22.00, se escribiría de esta manera con parámetros:

Nombre_ejecutable 22.00

Para que se pueda usar en el programa, los valores numéricos pasados al método main deben ser convertidos de cadena de caracteres, o string,  a un tipo primitivo.

  • Nota: El pase de argumentos al método main es una característica usada para probar programas. Además, necesitas conocer como funcionan las arrays para saber como tratar los diferentes argumentos pasados.