Abstracción Funcional en JAVA
La abstracción funcional en JAVA, se centra en sus METODOS (subprogramas), para ello hay que tener en cuenta:
- Definición de Métodos
- Los métodos como mecanismo de abstracción
- Tipo devuelto por un metodo
- Terminacion de métodos (return)
- Parámetros de un método. Y tipos de parámetros.
- Sobrecarga de métodos
La tarea asignada a un método debe estar, por un lado, bien definida, y por otro, el nombre asignado a un método debe indicar exactamente lo que hace. El contenido del mismo no debe de ser muy extenso, ya que de ser así, provocariamos un alto coste de mantenimiento para el futuro. Y por otro lado, la modularidad(Parte muy importante en la abstracción funcional de JAVA), también se vería gravemente afectada.
Todos los métodos deben de especificar el tipo de dato que este va a devolver, cualquier tipo básico de datos se adapta a esto, pero quizás el mas "especial" sea void. ¿Por qué?, pues sencillamente porque un método en JAVA funciona como una función en Pascal, solo cuando void se define como tipo de dato a devolver, es cuando este método se parece más a un procedimiento que a una función. En cualquier otro caso, la devolución del dato siempre viene dada por la palabra reservada return, es en este momento cuando un método llega a su fin, y se devuelve en control al invocador del método en cuestión. Tal vez, antes de devolver el control al invocador, el método puede que se haya llamado a si mismo recursivamente. La recursión, por definición, es una técnica de programación mediante la cual los procedimientos y funciones se llaman a sí mismos. ¿Por qué se utiliza este manera de programar?, se utiliza cuando es difícil encontrar o implementar una solución basada en bucles.
Para la ejecución de un método es necesario, en algunos casos, el paso de algún tipo de parámetros, donde va a ser necesario y obligatorio especificar el tipo de cada uno, es decir:
public void prueba(int x,y) // MAL
public void prueba(int x; int y) // BIEN
El paso de parámetros puede ser:
-Por Valor: Se le pasa una copia del valor, donde los cambios realizados a dicho valor no afectan a la variable utilizada como parámetro.
-Por Referencia: Se referencia a los datos de variable pasada como parámetro, pero esta vez, los cambios que se puedan realizar durante la ejecución del método, si se verán reflejados en la variable.
Se distinguen tres tipos de parámetros:
• Parámetros de Entrada: Son parámetros de sólo lectura, cuyo valor no puede ser modificado por el procedimiento o función.
• Parámetros de salida: Son parámetros de sólo salida. El procedimiento o función no puede leer su valor, únicamente cambiarlo.
• Parámetros de entrada y salida: El procedimiento o función puede leerlos y escribirlos.
Los Métodos deben de estar declarados dentro del cuerpo de una clase, porque a diferencia de otros lenguajes de programación, en JAVA no se pueden declarar métodos dentro de otros métodos.
Sabiendo esto, las funciones se utilizan como herramientas de abstracción (separación), porque su comportamiento (lo que hacen) puede ser separado (abstraido) de su implementación
(cómo lo hacen). En conclusión, la abstracción funcional está estrechamente ligada a las técnicas de diseño funcional descendente y a la programación estructurada.
