Programacion Generica en Java.
Enviado por María Silva Trujillo • 20 de Julio de 2016 • Ensayo • 3.650 Palabras (15 Páginas) • 707 Visitas
PROGRAMACIÓN GENÉRICA EN JAVA
María José Silva Trujillo
14/07/16
Universidad Politécnica Salesiana
RESUMEN
El presente artículo tiene como objetivo dar a conocer ciertas ventajas que presenta el lenguaje de programación en Java. Se presentarán conceptos alrededor de Programación Genérica, cómo funcionan en conjunto con sus métodos y constructores, ventajas que incluye utilizar Genericidad y conceptos de Internacionalización característica que permite al usuario o al propio sistema operativo configurar parámetros como el idioma de la aplicación, formato de fecha, huso horario, etcétera.
INTRODUCCIÓN
Antes de la existencia de Java 5 en el año 2004 se utilizaban colecciones las cuales son un grupo o conjunto de objetos trabajados y que se almacenan a través de la interfaz genérica Collection la cual ofrece varios métodos comunes los cuales desarrollar sobre las mismas. El problema de usar colecciones surge cuando se declaraban objetos de distintos tipos por ejemplo en una colección se declaraban tres datos de tipo String y un dato de tipo de int, se producía un error, sin embargo, se agregaba a la lista. Para corregir este tipo de errores se crearon las Genéricas.
DESCRIPCIÓN
Se detallarán conceptos alrededor de Programación Genérica, como funciona, sus derivadas: Clases Genéricas y Colección Genérica, ventajas que incluye utilizar Genericidad y conceptos de Internacionalización manejadas por el Lenguaje Java. Así como también detallar la implementación de constructores y métodos genéricos y por último ejemplos prácticos que permitan un funcionamiento adecuado indistintamente de la cultura, región o idioma, haciendo un uso general de todo lo mencionado anteriormente.
- CONCEPTO DE GENERICIDAD Y PROGRAMACIÓN GENÉRICA
1.1 Genericidad es el proceso que consiste en abstraer lo que es común y esencial en un conjunto de entidades para formar un concepto general que comprenda a todas. (Ortiz & Plaza, 2013)
Cuando escribimos una clase se debe conocer el tipo de dato con el que se desea interactuar, sin embargo, esto no siempre es conocido, por ello para poder trabajar con la clase se debería poder definir dentro de ella un tipo de parámetro que asumiría el tipo de datos con el cual se desea trabajar, a esto último es lo que llamaríamos Tipo Genérico o Tipo Parametrizado. Los tipos de datos genéricos o parametrizados permiten asignar parámetros a las clases, interfaces, métodos, de forma que sólo admitan los tipos de objetos que se desee. No se pueden utilizar con primitivos, pero si con las clases que se corresponden con ellos. (Ballesteros, 2013)
- La programación genérica está mucho más centrada en los algoritmos[1] que en los datos y su postulado fundamental puede sintetizarse, en una palabra: generalización. Significa que, en la medida de lo posible, los algoritmos deben ser parametrizados al máximo y expresados de la forma más independiente posible de detalles concretos, permitiendo así que puedan servir para la mayor variedad posible de tipos y estructuras de datos.
- CLASES GENÉRICAS
Java normalmente permite construir clases en las cuales los atributos se encargan de poseer características del objeto y los métodos contienen las funcionalidades del mismo, la necesidad de usar una clase genérica surge al momento de la declaración del tipo de dato, eso hace que se exija al objeto trabajar únicamente con estos tipos de datos y la clase termina careciendo de flexibilidad al momento de seguir creando código.
Las clases genéricas se presentan como una solución a la falta de flexibilidad. Y como función principal es permitir parametrizar las clases con cualquier tipo de dato. Con respecto a su funcionamiento el tipo de dato que se declara no debe ser ni de un tipo primitivo ni tampoco una Clase; debe ser lo más genérico posible como una simple letra, la misma que represente cualquier tipo de dato.
Existe una convención en las letras a utilizar para definir los tipos de datos genéricos:
- E: Representa un elemento genérico en la documentación de clases genéricas propias del lenguaje Java.
- K: Representa un elemento de tipo clave dentro de un diccionario.
- V: Es el valor de un diccionario o colección.
- N: Significa que el elemento genérico puede ser cualquier tipo de número.
- T: Cualquier tipo genérico.
- S, U, etc.: Cualquier otro tipo.
(Alvarez, 2014)
Si la clase necesita utilizar más de un tipo de dato genérico, entonces a cada uno de ellos se los debe separar mediante comas.
2.1 RESTRICCIONES DE TIPO
En algunas situaciones se desea plantear ciertas restricciones a los tipos que pueden utilizar los parámetros genéricos, las cuales vienen dadas por la jerarquía de herencia planteada por Java. Eso quiere decir que se deberá definir un parámetro el cual herede de una superclase, para que solo se lo utilice en clases derivadas. (Ortiz & Plaza, 2013)
2.2 CONSTRUCTORES Y MÉTODOS GENÉRICOS
Son métodos especiales que no disponen de parámetro de salida y que permiten inicializar un objeto de la clase genérica lanzándose automáticamente cuando se crea una instancia de la clase que los contiene. Este debe estar declarado dentro de la clase genérica para poder usar los tipos de daos genéricos declarados en esa misma clase. La sobrecarga de constructores también se aplica a constructores genéricos.
Y los métodos genéricos poseen el mismo funcionamiento que los métodos regulares, pero estos pueden manejar cualquier tipo de dato genérico declarado dentro de la clase. Las operaciones que realice cada método dependerán de las restricciones que se hayan aplicado a los tipos. (Ortiz & Plaza, 2013)
- COLECCIONES GENÉRICAS
Son un conjunto de estructuras de datos las cuales se pueden utilizar mediante clases especializadas las cuales pertenecen al paquete java.util las cuales permiten:
- Agregar o eliminar objetos a la estructura.
- Eliminar objetos de la estructura.
- Encontrar si un objeto o grupo de objetos pertenecen a la estructura.
- Recuperar un objeto de la estructura.
- Recorrer todos los objetos de la estructura uno tras otro.
Las colecciones se categorizan en:
- Listas: listas de elementos que implementan la interface List. (ArrayList, Vector).
- Sets: Conjunto de elementos no repetidos que implementan la interface Set. (HashSet, LinkedHashSet, TreeSet).
- Mapas: o también llamados diccionarios, permiten almacenar elementos que tienen un par (clave, valor), donde la clave debe ser única. Implementan la interface Map. (Hashtable, HashMap, LinkedHashMap, TreeMap).
- Colas: Elementos que están organizados por su entrada, es decir el primero que llega es el primero en ser procesado. (LinkedList, PriorityQueue).
Para la utilización de todas estas clases es necesario declarar un objeto con el tipo de alguna colección y luego llamar al constructor para crear la instancia.
- INTERNACIONALIZACIÓN
En un mundo globalizado, en el que aplicaciones de todo tipo están a la orden del día y pueden ser utilizados por usuarios de varias partes del mundo y con idiomas diferentes, es importante que la presentación de los sistemas se pueda configurar a conveniencia de lo que el usuario requiera. En lenguaje Java existen las clases Locale y ResourceBoundle del paquete java.util para el manejo de idiomas y localizaciones de una manera más cómoda para el programador.
...