Qué es un package

Un package es una agrupación de clases. En la API de Java 1.1 había 22 packages; en Java 1.2 hay 59 packages, lo que da una idea del “crecimiento” experimentado por el lenguaje.

Además, el usuario puede crear sus propios packages. Para que una clase pase a formar parte de un package llamado pkgName, hay que introducir en ella la sentencia:

package pkgName;

que debe ser la primera sentencia del fichero sin contar comentarios y líneas en blanco.

Los nombres de los packages se suelen escribir con minúsculas, para distinguirlos de las clases, que empiezan por mayúscula. El nombre de un package puede constar de varios nombres unidos por puntos (los propios packages de Java siguen esta norma, como por ejemplo java.awt.event).

Todas las clases que forman parte de un package deben estar en el mismo directorio. Los nombres compuestos de los packages están relacionados con la jerarquía de directorios en que se guardan las clases. Es recomendable que los nombres de las clases de Java sean únicos en Internet.

Es el nombre del package lo que permite obtener esta característica. Una forma de conseguirlo es incluir el nombre del dominio (quitando quizás el país), como por ejemplo en el package siguiente:

es.ceit.jgjalon.infor2.ordenar

Las clases de un package se almacenan en un directorio con el mismo nombre largo (path) que el package. Por ejemplo, la clase,

es.ceit.jgjalon.infor2.ordenar.QuickSort.class

debería estar en el directorio,

CLASSPATH\es\ceit\jgjalon\infor2\ordenar\QuickSort.class

donde CLASSPATH es una variable de entorno del PC que establece la posición absoluta de los directorios en los que hay clases de Java (clases del sistema o de usuario), en este caso la posición del directorio es en los discos locales del ordenador.

Los packages se utilizan con las finalidades siguientes:

1. Para agrupar clases relacionadas.

2. Para evitar conflictos de nombres (se recuerda que el dominio de nombres de Java es la Internet). En caso de conflicto de nombres entre clases importadas, el compilador obliga a cualificar en el código los nombres de dichas clases con el nombre del package.

3. Para ayudar en el control de la accesibilidad de clases y miembros.

Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra