TutorJava Nivel Básico

Los paquetes son grupos relacionados de clases e interfaces y proporcionan un mecanismo conveniente para menejar un gran juego de clases e interfaces y evitar los conflictos de nombres. Adem�s de los paquetes de Java puede crear tus propios paquetes y poner en ellos definiciones de clases y de interfaces utilizando la sentencia package.

Supongamos que se est� implementando un grupo de clases que representan una colecci�n de objetos gr�ficos como c�rculos, rect�ngulos, l�neas y puntos. Adem�s de estas clases tendr�s que escribir un interface Draggable para que en las clases que lo implementen pueda moverse con el rat�n. Si quieres que estas clases est�n disponibles para otros programadores, puedes empaquetarlas en un paquete, digamos, graphics y entregar el paquete a los programadores (junto con alguna documentaci�n de referencia, como qu� hacen las clases y los interfaces y qu� interfaces de programaci�n son p�blicos).

De esta forma, otros programadores pueden determinar f�cilmente para qu� es tu grupo de clases, c�mo utilizarlos, y c�mo relacionarlos unos con otros y con otras clases y paquetes.

Los nombres de clases no tienen conflictos con los nombres de las clases de otros paquetes porque las clases y los interfaces dentro de un paquete son referenciados en t�rminos de su paquete (t�cnicamente un paquete crea un nuevo espacio de nombres).

Se declara un paquete utilizando la sentencia package.

package graphics;

interface Draggable {
    . . .
}

class Circle {
    . . .
}

class Rectangle {
    . . .
}

La primera l�nea del c�digo anterior crea un paquete llamado graphics. Todas las clases e interfaces definidas en el fichero que contiene esta sentencia son miembros del paquete. Por lo tanto, Draggable, Circle,y Rectangle son miembros del paquete graphics.

Los ficheros .class generados por el compilador cuando se compila el fichero que contiene el fuente para Draggable, Circle y Rectangle debe situarse en un directorio llamado graphics en alg�n lugar del path CLASSPATH. CLASSPATH es una lista de directorios que indican al sistema donde ha instalado varias clases e interfaces compiladas Java. Cuando busque una clase, el int�rprete Java busca un directorio en su CLASSPATH cuyo nombre coincida con el nombre del paquete del que la clase es miembro. Los ficheros .class para todas las clases e interfaces definidas en un paquete deben estar en ese directorio de paquete.

Los nombres de paquetes pueden contener varios componentes (separados por puntos). De hecho, los nombres de los paquetes de Java tienen varios componentes: java.util, java.lang, etc...

Cada componente del nombre del paquete representa un directorio en el sistema de ficheros. As�, los ficheros .class de java.util est�n en un directorio llamado util en otro directorio llamado java en alg�n lugar del CLASSPATH.

.�CLASSPATH

Para ejecutar una aplicaci�n Java, se especifica el nombre de la aplicaci�n Java que se desea ejecutar en el interprete Java. Para ejecutar un applet, se especifica el nombre del applet en una etiqueta <APPLET> dentro de un fichero HTML. El navegador que ejecute el applet pasa el nombre del applet al int�rprete Java. En cualquier caso, la aplicaci�n o el applet que se est� ejecutando podr�a est�r en cualquier lugar del sistema o de la red. Igualmemente, la aplicaci�n o el applet pueden utilizar otras clases y objetos que est�n en la misma o diferentes localizaciones.

Como las clases pueden estar en cualquier lugar, se debe indicar al interprete Java donde puede encontrarlas. Se puede hacer esto con la variable de entorno CLASSPATH que comprende una lista de directorios que contienen clases Java compiladas. La construcci�n de CLASSPATH depende de cada sistema.

Cuando el interprete obtiene un nombre de clase, desde la l�nea de comandos, desde un navegador o desde una aplicaci�n o un applet, el interprete busca en todos los directorios de CLASSPATH hasta que encuentra la clase que est� buscando.

Se deber� poner el directorio de nivel m�s alto que contiene las clases Java en el CLASSPATH. Por convenci�n, mucha gente tiene un directorio de clases en su directorio ra�z donde pone todo su c�digo Java. Si tu tienes dicho directorio, deber�as ponerlo en el CLASSPATH. Sin embargo, cuando se trabaja con applets, es conveniente poner el applet en un directorio clases debajo del directorio donde est� el fichero HTML que contiene el applet. Por esta, y otras razones, es conveniente poner el directorio actual en el CLASSPATH.

Las clases incluidas en el entorno de desarrollo Java est�n disponibles autom�ticamente porque el interprete a�ade el directorio correcto al CLASSPATH cuando arranca.

Observa que el orden es importante. Cuando el interprete Java est� buscando una clase, busca por orden en los directorios indicados en CLASSPATH hasta que encuentra la clase con el nombre correcto. El interprete Java ejecuta la primera clase con el nombre correcto que encuentre y no busca en el resto de directorios. Normalmente es mejor dar a las clases nombres �nicos, pero si no se puede evitar, aseg�rate de que el CLASSPATH busca las clases en el orden apropiado. Recuerda esto cuando selecciones tu CLASSPATH y el �rbol del c�digo fuente.

Nota:

Todas las clases e interfaces pertenecen a un paquete. Incluso si no especifica uno con la sentencia package. Si no se especifica las clases e interfaces se convierten en miembros del paquete por defecto, que no tiene nombre y que siempre es importado.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP