Paquete Java

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Un Paquete en Java es un contenedor de clases que permite agrupar las distintas partes de un programa y que por lo general tiene cuya funcionalidad elementos comunes, definiendo la ubicación de dichas clases en un directorio de estructura jerárquica.

Ventajas[editar]

El uso de paquetes proporciona las siguientes ventajas:

  • Agrupamiento de clases con características comunes.
  • Reutilización de código al promover principios de programación orientada a objetos como la encapsulación y modularidad.
  • Mayor seguridad al existir niveles de acceso.
  • Evita la colisión de clases que tengan el mismo nombre. Pueden existir clases con el mismo nombre siempre y cuando su fully qualified class name sean únicos.
  • Mantenibilidad de código. Si un paquete se enfoca en la agrupación de clases con características comunes, el cambio en la funcionalidad se limita a las clases contenidas en dicho paquete, además, si es un paquete grande soporta la reusabilidad, si por el contrario es pequeño soporta su mantenibilidad.

Contenido de un paquete[editar]

Un paquete puede contener:

Atributos de un paquete Java[editar]

Un paquete Java tiene los siguientes atributos:

  • Son opcionales. Si no se define un paquete para un fichero de código Java se definirá un paquete llamado "default" automáticamente.
  • Es definido un paquete por cada ficheros de código Java.
  • Los nombres de paquete que inician con el nombre de java.* y javax.* son reservados.
  • El nombre del paquete equivale a una estructura de ficheros. El nombre de paquete com.dominio_empresa.utilidades debería ser igual al directorio [ruta_directorio]\com\dominio_empresa\utilidades. Si una clase incluida en un paquete no se relaciona con su respectiva estructura de directorio, la clase no podrá usarse.

Convenciones en la definición de paquetes Java[editar]

Los siguientes son convenciones o estándares acordados en la definición de paquetes en Java:

  • El nombre del paquete se define de manera inversa al dominio de la organización o grupo. Por ejemplo, dominioempresa.com puede ser usado como nombre de paquete así: com.dominio_empresa.utilidades.
  • El nombre del paquete debería definirse en minúscula. Si existe varias palabras en el nombre se pueden separar con guión bajo (_).

Uso de paquetes[editar]

En los ficheros de código Java se usa la palabra reservada package para especificar a qué paquete pertenecen. Suele indicarse como primera sentencia:

package java.awt.event;

Para usar un paquete dentro del código se usa la declaración import. Si sólo se indica el nombre del paquete:

import java.awt.event.*;

se importan todas las clases que contiene. Si además del nombre del paquete se especifica una clase, sólo se importa esa clase:

import java.awt.event.ActionEvent;

Después de añadir alguna de estas sentencias, se puede hacer referencia a la clase ActionEvent usando su nombre:

ActionEvent myEvent = new ActionEvent();

Si no se hubiera importado la clase o el paquete, cada vez que tuviéramos que usarla habría que especificarla por su fully qualified class name, que no es más que el nombre del paquete seguido por el nombre de la clase:

java.awt.event.ActionEvent myEvent = new java.awt.event.ActionEvent();

Si lo que se desea es importar todos los miembros estáticos de una clase, note la sentencia static despúes de import. (A partir de J2SE 5.0 en adelante)

import static java.awt.Color.*;

Si lo que se desea es importar un sólo miembro estático de una clase. (A partir de J2SE 5.0 en adelante)

import static java.awt.color.ColorSpace.CS_GRAY*;

Paquetes importantes de Java[editar]

Estos son los paquetes más importantes de la API de Java:

Paquete Descripción
java.applet Contiene clases para la creación de applets.
java.awt Contiene clases para crear interfaces de usuario con ventanas.
java.io Contiene clases para manejar la entrada/salida.
java.lang Contiene clases variadas pero imprescindibles para el lenguaje, como Object, Thread, Math...

El paquete java.lang es importado por defecto en el ficheros de código Java.

java.net Contiene clases para soportar aplicaciones que acceden a redes TCP/IP.
java.util Contiene clases que permiten el acceso a recursos del sistema, etc.
javax.swing Contiene clases para crear interfaces de usuario mejorando la AWT.

Enlaces externos[editar]