Está en la página 1de 3

Imports

Para poder interactuar entre entre diferentes paquetes, por ejemplo utilizar una clase desde otra
clase, necesitamos importar esa clase que necesitamos. Esto no es necesario cuando las clases
se encuentran en el mismo paquete, pero cuando esto no es as debemos hacer uso de la
clusula import la cual siempre tiene que ir luego de la clusula package (si existiera) y antes
de la declaracin de clases, a continuacin algunos ejemplos:
En este caso tenemos todas las clases en el mismo paquete mipaquete, vase:
1 package mipaquete;
2
3 class MiClase {
4 Rectangulo r;
5 ...
6 }
Para hacer uso de la clase Rectangulo nos referimos a ella directamente ya que esta se
encuentra en el paquete mipaquete. Esa clase puede ser publica o no, y al no ser publica se
considera que es Package friendly (Amistosa) o Default access (de Acceso por defecto) por lo
que solo puede accedida desde su mismo paquete.
En otro caso tenemos nuestras clases en el paquete mipaquete y las clases que queremos usar
en el paquete geometria.figuras, por lo tanto tenemos diferentes paquetes, vase:
1 package mipaquete;
2
3 import geometria.figuras.Rectangulo;
4
5 class MiClase {
6 Rectangulo r;
7 ...
8 }
En este otro caso la clase Rectangulo que queremos usar se encuentra en un paquete distinto,
entonces para poder usarla hacemos el uso de:
1 ...
2 import geometria.figuras.Rectangulo;
3 ...
el cual importa directamente esa clase desde su paquete. En este caso la clase debe de ser
publica, de lo contrario no podemos acceder a ella.
En el ultimo ejemplo vimos la necesidad de importar la clase Rectangulo, y es que existen tres
formas de hacerlo:
1- Importar directamente la clase que necesitamos (el mtodo usado en el ejemplo):
1 import geometria.figuras.Rectangulo;
2- Usar el comodn * para importar todo el contenido del paquete geometria.figuras:
1 import geometria.figuras.*;
3- No usar la clusula import, simplemente cada ves que necesitemos algo escribimos su
ubicacin completa:
1 package mipaquete;
2
3 class MiClase {
4 geometria.figuras.Rectangulo r;
5 ...
6 }
Notas:
* La interaccin entre diferentes paquetes se ve afectada por los modificadores de acceso, por
eso una de las ventajas de el uso de paquetes es la seguridad.
* La clusula import no funciona como el include de C que incluye mas cdigo, sino que
solo le indica al compilador la ubicacin del cdigo externo el cual queremos utilizar, es ms
como un acceso directo ya que como vimos ni siquiera es obligatorio usarlo, simplemente
podramos escribir en nuestro cdigo las ubicaciones completas del cdigo externo lo cual
podra volverse repetitivo y nos dejara un cdigo mas extenso. De ah la ventaja prctica al
usar import.
* Los IDEs tales como NetBeans o Eclipse nos facilitan notoriamente la tarea de declarar
paquetes y hacer importaciones.

Packages

Un package (en espaol: paquete) es un contenedor de un grupo de clases, interfaces, etc.


relacionadas entre si. Un paquete es a Java lo que una librera es a otro lenguaje (por ejemplo:
C). Estos pueden contener clases, interfaces, enumerados, anotaciones e incluso otro tipo de
archivos.
Las ventajas de organizar nuestros archivos en paquetes:
Agrupar clases que tienen algo en comn.
Reutilizacin del cdigo.
Seguridad gracias a los modificadores de acceso.
Una clase puede declararse como perteneciente a un paquete a travs de la clusula package, la
cual debe de ser la primera lnea en el cdigo fuente:
1 package mipaquete;
2
3 class MiClase {
4 ...
5 }
Aqu tenemos que la clase MiClase pertenece al paquete mipaquete, de echo cualquier otra
clase declarada en este mismo archivo de cdigo fuente pertenecer tambin a mipaquete.
Notas:
* Java es Sensitive Case, hay que respetar maysculas y minsculas. Lo que significa que
mipaquete no es lo mismo que MiPaquete.
* No podemos tener en un mismo paquete dos clases con el mismo nombre.
El uso de paquetes no es obligatorio, pero si no declaramos a una clase como perteneciente a
algn paquete entonces pertenecern a lo que se llama un Default package (Paquete por
defecto) el cual representara el directorio actual lo cual a veces es usado cuando se trata de
pequeos programas, pero de cualquier forma Sun desaprueba esta practica. De echo los IDEs
nos advierten cuando estamos creando clases nuevas sin pertenecer a un paquete.
Los paquete son usualmente definidos en una jerarqua de niveles los cuales son separados por
., es decir que los paquetes que estn en un nivel inferior podemos llamarlos sub-paquetes
aunque esto es apreciable solo para nosotros porque la JVM ve a cada paquete, sin importar en
que nivel se encuentre, como un paquete totalmente distinto por lo que no reconoce la relacin
entre un paquete y otro en cuanto a sus niveles en la jerarqua.
1 package mipaquete.misubpaquete;
2
3 class MiOtraClase {
4 ...
5 }
Aqu tenemos que la clase MiOtraClase pertenece al paquete misubpaquete que esta dentro del
paquete mipaquete.

Fuente:

https://darkbyteblog.wordpress.com/2011/01/06/java-las-clausulas-package-e-import/

También podría gustarte