Ir al contenido principal

Java Tip 5: Paquetes (package)




Los paquetes (package) en Java son la manera en la cual organizamos nuestras clases. Es importante respetar el orden de declaración y por lo tanto la palabra package debe ser la primera línea del archivo fuente.

Ejemplo. Tenemos un archivo llamado A.java en el directorio C:\Users\DELL\javaTest\pack1. Dicho de otro modo  C:\Users\DELL\javaTest\pack1\A.java


/**
* pack1 es el lugar donde se encuentra 
* el archivo A.java
*/
package pack1;

public class A{
   //variables de instancia
   //Constructor(es)
   //métodos
}

Ahora tenemos otro archivo llamado B.java en el directorio C:\Users\DELL\Documents\programacion\pack2 Osea C:\Users\DELL\Documents\programacion\pack2\B.java.

/**
* pack2 es el lugar donde se encuentra 
* el archivo B.java
*/
package pack2;

public class B{
   //variables de instancia
   //Constructor(es)
   //métodos
}

¿Cómo podemos hacer uso de los archivos A.java y B.java en otro archivo?

Tenemos un archivo llamado C.java en el directorio C:\Users\DELL\Documents\programacion\pack3. Así: C:\Users\DELL\Documents\programacion\pack3\C.java

/**
* pack3 es el lugar donde se encuentra 
* el archivo C.java
*/
package pack3;

//debemos importar las clases A y B

public class C{
   
  public static void main(String[] args){
   

 }

}

Para poder importar las clases A.java y B.java en el archivo C.java necesitamos usar la palabra import seguido del paquete y clase a importar.

Primera opción: Importar las clases de un package.

/**
* pack3 es el lugar donde se encuentra 
* el archivo C.java
*/
package pack3;

//Importamos la clase A del package pack1
import pack1.A; 
//Importamos la clase B del package pack2
import pack2.B;

public class C{
   
  public static void main(String[] args){
     A a = new A();
     B b = new B();
  }

}

Segunda opción: Importar todo de un package en específico.

/**
* pack3 es el lugar donde se encuentra 
* el archivo C.java
*/
package pack3;

//Importamos todo del package pack1
import pack1.*; 
//Importamos tyodo del package pack2
import pack2.*;

public class C{
   
  public static void main(String[] args){
     A a = new A();
     B b = new B();
  }

}

Nota: como buena práctica no deberíamos importar todo el contenido de un package sólo cuando la situación así lo requiera.

Esto se puede ver mejor así:
..\pack1\A.java
..\pack2\B.java
..\pack3\C.java

Ahora supongamos que tenemos algo como esto:

..\pack1\clases\A.java
..\pack2\interfaces\B.java
..\pack3\test\C.java

El archivo A.java se vería así:

/**
*
*  ..\pack1\clases\A.java
**/
package pack1.clases;

public class A{}

El archivo B.java:

/**
*
*  ..\pack2\interfaces\B.java
**/
package pack2.interfaces;

public interface B{
  public abstract void nada();
}

Finalmente el archivo C.java:

/**
*
*  ..\pack3\test\C.java
**/
package pack3.test;

//importamos clase A.java
import pack1.clases.A;

//importamos interface B.java
import pack2.interface.B;


public class C implements B{

  private A a;
  
  @Override
  public void nada(){
  }


}

¿Qué pasa con los archivos que pertenecen al mismo package?

Su importación es directa.

..\pack1\X.java
..\pack1\Y.java

X.java

package pack1;


public class X{
  
  // Y.java esta dentro del mismo paquete de X.java
  public Y y;

}

Y.java

package pack1;


public class Y{
  
  // X.java esta dentro del mismo paquete de Y.java
  public X x;

}


Comentarios

Entradas populares de este blog

Java Tip 20: JDBC (2da parte)

Continuamos con esta serie sobre JDBC . Como dijimos la vez anterior JDBC( Java Database Connectivity ) es el estándar de conectividad de bases de datos de Java y proporciona un mecanismo para que los programas Java se conecten a las bases de datos. En este post veremos ejemplos de su uso. Requisitos: Tener nociones de Java.  Tener nociones de SQL (usaremos H2). Tener nociones de Maven. Creando una aplicación JDBC Crearemos una sencilla aplicación que se conecte a una BD H2 (ver  tutorial ). Pasos: Crearemos una tabla a la que llamaremos Cursos. La cual tendrá los siguientes campos: id, titulo, materia, instructor, fecha y hora. Crear la aplicación Java usando Maven. Crearemos instrucciones SQL para consultar la información, ingresar nuevos cursos, actualizar y eliminar registros. Ejecutar la aplicación con Maven. 1. Creamos la tabla con sus seis campos (agregaremos los datos con la aplicación Java): CREATE OR REPLACE TABLE CURSOS( id bigint ...

Lo nuevo de Java desde la versión 12 hasta la 22

Aquí unos enlaces a varias publicaciones sobre algunos nuevos aspectos del lenguaje Java, desde la versión 12 a la 22. Expresiones Switch en Java Una nueva funcionalidad en el lenguaje: las expresiones switch. https://emanuelpeg.blogspot.com/2025/01/expresiones-switch-en-java.html API de Servidor Web Simple en Java Una API de Servidor Web Simple que permite crear servidores HTTP ligeros sin necesidad de dependencias externas. https://emanuelpeg.blogspot.com/2025/02/api-de-servidor-web-simple-en-java.html Clases Record Una implementación de las data-clases o del patrón Data Transfer Object, un tipo de clase cuyo único propósito es impulsar la programación con datos inmutables. https://alquimistadecodigo.blogspot.com/2025/02/java-clases-record.html https://emanuelpeg.blogspot.com/2025/02/record-en-java.html Clases Selladas y coincidencia de patrones en Java https://emanuelpeg.blogspot.com/2025/03/clases-selladas-y-coincidencia-de.html https://emanuelpeg.blogspo...

Java Tip 21: preguntas sobre Programación Orientada a Objetos en Java

  Nota: Este post esta basado en un artículo de linkedin llamado " Top 50 OOPs Interview Questions & Answers ". 1. ¿Qué es la POO? Es la abreviatura de Programación Orientada a Objetos . Es un paradigma de programación en la cual los programas son considerados como una colección de objetos y cada uno de esos objetos se considera una instancia de una clase. Una clase es una plantilla o modelo para crear objetos. Digamos una representación de un tipo de objeto (una casa, un mueble, una persona, etc.).  2. ¿Cuáles son los conceptos básicos de la POO? Abstracción. Encapsulación Herencia. Polimorfismo. 3. ¿Qué es la Abstracción? Es el ocultamiento de los detalles de implementación y mostrar solo las características esenciales de un objeto. 4. ¿Qué es la Encapsulación? Es un atributo de un objeto, y contiene todos los datos ocultos. Estos datos ocultos pueden restringirse a los miembros de la clase. Los niveles de acceso pueden ser: default , public , protected y    p...