Listado completo de tutoriales

77 - Creación de paquetes (package)


En programas pequeños o cuando estamos aprendiendo a programar en Java es común definir la clase o conjunto de clases del proyecto en el paquete por defecto (default package), es así como lo hemos hecho en este tutorial.

Cuando disponemos las clases en el paquete por defecto no pueden ser reutilizadas en otros proyectos.

Los paquetes son un mecanismo de Java que nos permite agrupar un conjunto de clases relacionadas con un nombre de paquete, luego dicho paquete puede compilarse y ser reutilizado en otros proyectos que desarrollemos nosotros u otras empresas.

Para definir una clase dentro de un determinado paquete debemos agregar en la primer línea de nuestro código fuente la palabra clave 'package' y seguidamente el nombre de paquete.

Por convención se propone que todo paquete comience por la URL de la empresa (en forma invertida) que lo desarrolla y seguidamente otros nombres que nos den una idea de que clases agrupa dicho paquete.

Para ver los pasos desde Eclipse crearemos dos paquetes.

Problema

Crear dos clase llamadas 'Matematica' y 'Cadena', definir una serie de métodos estáticos en cada una de ellas.

Disponer las dos clases en el paquete: com.tutorialesprogramacionya.rutinas

Crear un segundo paquete llamado 'com.tutorialesprogramacionya.calculadora' en el mismo proyecto y acceder a las clases del primer paquete.

Veamos los pasos para resolver el problema:

  • Creamos un proyecto llamado 'PruebaPaquetes' en Eclipse.

  • Creamos la clase 'Matematica' en el paquete: com.tutorialesprogramacionya.rutinas

    java creación de package
  • El mismo paso hacemos para crear la clase 'Cadena' en el paquete: com.tutorialesprogramacionya.rutinas

    java creación de package

    Si vemos el Package Explorer de Eclipse podremos ver la localización de las dos clases que hemos creados en el paquete: com.tutorialesprogramacionya.rutinas:

    java Eclipse package explorer

    Si vamos al administrador de archivos del sistema operativo podemos ver como Java organiza los paquetes en directorios (los caracteres punto indican que hay un nuevo subdirectorio):

    java Eclipse package explorer
  • Codificamos algunos métodos en cada clase:

    package com.tutorialesprogramacionya.rutinas;
    
    public class Matematica {
        
        public static int sumar(int x, int y) {
            return x + y;
        }
    
        public static int restar(int x, int y) {
            return x - y;
        }
    }
    
    package com.tutorialesprogramacionya.rutinas;
    
    public class Cadena {
    
        public static String mayuscula(String cadena) {
            return cadena.toUpperCase();
        }
    }
    

    El mismo Eclipse nos codifica el nombre del paquete donde se almacena la clase:

    package com.tutorialesprogramacionya.rutinas;
    

    Si necesitamos hacer import se deben codificar después de la línea de definición del paquete.

    Hasta ahora tenemos creado el paquete com.tutorialesprogramacionya.rutinas y sus dos clases:

    java package
  • Ahora crearemos un segundo paquete llamado com.tutorialesprogramacionya.calculadora donde implementaremos una clase llamada 'PruebaPaquetes' que consuma las clases del otro paquete:

    java package

    Codificamos ahora la clase 'PruebaPaquetes':

    package com.tutorialesprogramacionya.calculadora;
    
    import com.tutorialesprogramacionya.rutinas.Matematica;
    import com.tutorialesprogramacionya.rutinas.Cadena;
    
    public class PruebaPaquetes {
    
        public static void main(String []ar) {
            System.out.println("La suma de 2+2 es "+Matematica.sumar(2, 2));
            String cadena="Hola Mundo";
            System.out.println(Cadena.mayuscula(cadena));
        }
    }
    
    java package

    Para poder acceder desde el paquete 'com.tutorialesprogramacionya.calculadora' a las clases contenidas en el paquete 'com.tutorialesprogramacionya.rutinas' debemos importarlas una a una:

    import com.tutorialesprogramacionya.rutinas.Matematica;
    import com.tutorialesprogramacionya.rutinas.Cadena;
    

    O si queremos importarlas a todas de una vez podemos escribir un solo import:

    import com.tutorialesprogramacionya.rutinas.*;
    

    Ahora ya podemos ejecutar la clase 'PruebaPaquetes' y ver el resultado.

Organizar las clases en paquetes es de vital importancia en proyectos grandes donde puede necesitarse codificar miles de clases. El API de Java es un buen ejemplo de como se organizan las clases en paquetes.

Recordemos algunos paquetes que hemos utilizado:

  • Paquete java.util donde se implementan las clases, interfaces, enumeraciones etc. para administrar colecciones vistas en los conceptos anteriores como son las clases ArrayList, LinkedList Stack etc.

  • Paquete javax.swing donde se declaran entre otras las clase JFrame, JButton, JLabel etc.

  • Paquete java.lang que es el único paquete de Java que no requiere efectuar el import ya que el compilador lo hace en forma automática. Este paquete agrupa las clases de uno más común como pueden ser : Object, String, System, Integer, Double etc.

  • Paquete java.sql que contiene clases para el acceso a bases de datos relacionales.


Retornar