You are on page 1of 15

Paquetes en Java

Ing. Andrea Quan

Paquetes en Java
Un paquete de Java o Java package es una serie o coleccin de clases e interfaces (Java Interfaces) y posibles subpaquetes que se asocian entre si. Las clases dentro de un paquete estn relacionadas por lo que hacen o para lo que sirven.

Ejemplos:
java.io es un paquete de clases relacionadas con I/O (input/output) java.lang es un paquete que contiene clases que generalmente utilizamos al programar en Java.

Beneficios de los paquetes


Empaquetar mltiples clases. Los paquetes contienen clases escondidas que son tiles dentro del paquete, pero que no pueden ser accedidas desde afuera (de el paquete). Las clases dentro del paquete pueden tener campos y mtodos que son visibles para todas las clases dentro del paquete, pero no para las clases externas a el. Diferentes paquetes pueden tener clases con el mismo nombre, Ejemplo: java.awt.Frame y photo.Frame

Usando paquetes
Para utilizar las clases de un paquete (librera) se necesita importarlo. Esto ya lo hemos antes: import java.io.*; Instruccin que importara TODAS las clases en la librera java.io. import java.awt.Frame; Que solo importara la clase Frame de la librera java.awt.

Usando Paquetes
Todos los programas en Java importan implcitamente la librera java.lang En el caso de que dos paquetes importados tengan una clase que se llame igual, para mandarla a llamar debemos escribir Explcitamente todo el nombre del paquete al que pertenece: import java.awt.*; import photo.*; -----java.awt.Frame.add(photo.Frame.canvas);

Construyendo Paquetes
Las clases que pertenecen a un paquete deben incluir un comando package, el cual especifica el nombre del paquete al que pertenecen. Este comando debe ser la PRIMERA linea en el archivo .java El nombre del paquete debe ser IGUAL al nombre del directorio/folder en el que se encuentran dichas clases. Es decir, que para tener un paquete prueba, todas las clases pertenecientes a ese paquete deben estar metidas en un folder prueba.

Construyendo Paquetes

Se escribe la instruccin package como primera lnea en el programa (archivos .java) y se indica a que paquete pertenece. Para este ejemplo, el paquete es shapes. Como convenio, los nombres de paquetes van con minsculas.

Construyendo Paquetes

La Clase (o archivo .java) debe estar dentro de un folder con el mismo nombre del paquete.

Compilando y corriendo paquetes


Para compilar y ejecutar clases dentro de paquetes en Java, tenemos que hacerlo desde afuera del directorio del paquete, indicando el nombre de el paquete como parte de el path del archivo a compilar: Separadas (clase por clase):

o juntas (todas las clases a la vez):

Subpaquetes
En el caso de tener subpaquetes, es el mismo procedimiento: (1) Se crea un subfolder/subdirectorio dentro de el folder/ directorio de el paquete principal

Subpaquetes
(2) Se indica en cada archivo .java, utilizando la instruccin package, que pertenece al subpaquete del paquete, separando por un .

package paquete.subpaquete;

Si hay mas subpaquetes dentro de subpaquetes, se anidan con puntos (.) :


package paquete.subpaquete.subpaquete1 ..

Subpaquetes
(3) Se compila, desde afuera de el paquete (no solo desde afuera de el subpaquete)

javac paquete/subpaquete/clase

Friendly (package protected)


Las clases definidas como friendly, solo pueden ser utilizadas dentro del paquete al que pertenecen. Los campos definidos como friendly dentro de una clase, solo pueden ser accedidos por clases que pertenecen al mismo paquete.

Clase DNode esta definida como friendly, y sus campos (dato, prev y next) tambin.

Friendly (package protected)


En un archivo .java, pueden declararse varias clases, con la condicin que UNA sola sea public (las dems pueden ser friendly)

En el archivo DList.java , estan las clases public DList y friendly DNode

Friendly (package protected)


Si se compila un .java con varias clases, se generan un .class por cada clase definida: