LPR GRUPO_28

Este Blog ha sido creado para el seguimiento de la asignatura LPR por parte del grupo 28 cuyos miembros son: LMALVAREZ, pachon, RRLOPEZ. Un saludo.

jueves, enero 11, 2007

Abstracción funcional en Java

Abstracción funcional: los subprogramas se invocan para realizar una tarea, pero sin necesidad de saber cómo la llevan a cabo.
Está estrechamente ligada a las técnicas de diseño funcional descendente y a la programación estructurada.
Permite llevar a cabo el concepto de modularidad:
– Una función agrupa a un conjunto de instrucciones altamente cohesionadas
– Una función realiza una tarea específica.
– Para usar una función no es necesario conocer su implementación.



Tipo de subprograma

Java utiliza como tipo de subprograma las funciones.
Las funciones en Java reciben el nombre de métodos.

Método: Sección de código autocontenida que pertenece a una clase y que define la parte del comportamiento del sistema correspondiente a dicha clase y a sus objetos.

Sintaxis:
[Modificadores] tipoDevuelto identificadorMetodo([argumentos])
{
// cuerpo del método
}

Los modificadores (public, protected, private, final, static) y los argumentos (tipo primitivo, objeto) son opcionales.

tipoDevuelto: puede ser void, un tipo primitivo (int, float,…) o una referencia.

Para indicar que una función se comporta como un procedimiento indicaremos con void que ésta no devuelve nada.
No es necesario declarar el tipo de los parámetros debido a que Java comprueba dichos tipos en tiempo de ejecución.
Los métodos están todos al mismo nivel, esto quiere decir que no se pueden definir métodos dentro de métodos.



Métodos de paso de parámetros

En Java todos los parámetros son pasados por valor, excepto los objetos que se pasan por referencia.
La no existencia de punteros no permite el paso por referencia de escalares (sí como parte de un objeto).
Java no ofrece nada parecido a const, en cuanto a lo que al paso de parámetros se refiere.



Subprogramas como parámetros


Los métodos no se pueden pasar como parámetro a un método en Java. Pero si se podría pasar un objeto a un método y luego llamar a los métodos del objeto.

Sobrecarga de subprogramas

En Java se permite definir métodos con el mismo nombre siempre que difieran en los argumentos de entrada (ya sea en orden, número y/o tipo de éstos) o en el tipo que devuelven.




Subprogramas polimórficos



Polimorfismo: característica que permite que métodos con el mismo nombre puedan efectuar acciones distintas.


Se puede clasificar el polimorfismo en dos grandes clases:


Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados. En Java existe el polimorfismo ad hoc gracias a la sobrecarga de métodos.


Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible. En Java una superclase, combinando la herencia con la sobrecarga de métodos, puede definir la forma general de los métodos que serán utilizados por todas sus subclases.




Referencias utilizadas

Abstracción funcional
Polimorfismo
Características de Java
El lenguaje Java
Sobrecarga de métodos

Tutorial de Java