You are on page 1of 10

Paquetes en Java

Ing. Andrea Quan

Paquetes en Java
Un paquete en Java o Java package es una serie o coleccin de clases e interfaces (Java Interfaces) y posibles subpaquetes que confian una en la otra. Las clases dentro de un paquete estan unidas por lo que hacen o para lo que sirven. java.io es un paquete 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


Los paquetes contienen clases escondidas que son tiles dentro del paquete, pero que no pueden ser accesadas desde afuera. Las clases dentro del paquete pueden tener campos y mtodos que son visibles para todas las clases dentro del paquete, pero no por las clases externas a el. Diferentes paquetes pueden tener clases con el mismo nombre: 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.*;

Que importara TODAS las clases en la librera java.io.


import java.awt.Frame;

Que solo importara la clase Frame del paquete java.awt.

Usando Paquetes
Cual es el paquete/librera que todos los programas en Java importan implcitamente? 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, el cual 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
package list; public class DLista { DNodo head; int size; [constructores y mtodos] } ------package list; class DNodo { DNodo prev,next; Object dato; [constructores] }

Construyendo paquetes
Para las clases anteriores: DNodo.java y DLista.java se encuentran dentro del directorio list. Las clases DNodo y DLista pertenecen ambas al paquete list. La clase DNodo es friendly (package protected), es decir que solo puede ser vista y usada por las clases del paquete list. La clase DLista por ser public puede ser accesada por clases externas al paquete. Los campos de ambas clases son friendly (package protected) es decir, que solo pueden ser vistos y manipulados por clases del paquete list. La clase public DLista y la clase DNodo pueden ser declaradas en el mismo archivo

Compilando y corriendo paquetes


Para compilar y correr los paquetes en Java Tenemos que hacerlo desde afuera del directorio del paquete.
javac list/DLista.java java list.DLista

Subpaquetes
package paquete.subpaquete; import paquete.subpaquete.*;

javac paquete/subpaquete/*.java
java.io io subpaquete del paquete java