Los programadores son un grupo organizado cuando se trata de escribir código. Les gusta organizar sus programas para que fluyan de una manera lógica, llamando a bloques de código separados para que cada uno tenga un trabajo en particular. La organización de las clases que escriben se realiza mediante la creación de paquetes..
Un paquete permite a un desarrollador agrupar clases (e interfaces) juntas. Todas estas clases estarán relacionadas de alguna manera: podrían tener que ver con una aplicación específica o realizar un conjunto específico de tareas. Por ejemplo, la API de Java está llena de paquetes. Uno de ellos es el paquete javax.xml. Este y sus subpaquetes contienen todas las clases en la API de Java relacionadas con el manejo de XML.
Para agrupar clases en un paquete, cada clase debe tener una declaración de paquete definida en la parte superior de su archivo .java. Le permite al compilador saber a qué paquete pertenece la clase y debe ser la primera línea de código. Por ejemplo, imagina que estás haciendo un simple juego de acorazados. Tiene sentido poner todas las clases necesarias en un paquete llamado acorazados:
acorazados de paquete
clase GameBoard
Cada clase con la declaración del paquete anterior en la parte superior ahora será parte del paquete Battleships.
Por lo general, los paquetes se almacenan en un directorio correspondiente en el sistema de archivos, pero es posible almacenarlos en una base de datos. El directorio en el sistema de archivos debe tener el mismo nombre que el paquete.
Es donde se almacenan todas las clases que pertenecen a ese paquete. Por ejemplo, si el paquete de acorazados contiene las clases GameBoard, Ship, ClientGUI, habrá archivos llamados GameBoard.java, Ship.java y ClientGUI.java almacenados en un directorio llamado acorazados.
Organizar clases no tiene que estar en un solo nivel. Cada paquete puede tener tantos subpaquetes como sea necesario. Para distinguir el paquete y subpaquete un "." se coloca entre los nombres de paquete.
Por ejemplo, el nombre del paquete javax.xml muestra que XML es un subpaquete del paquete javax. No se detiene allí, en XML hay 11 subpaquetes: bind, crypto, datatype, namespace, parsers, soap, stream, transform, validation, ws y XPath.
Los directorios en el sistema de archivos deben coincidir con la jerarquía de paquetes. Por ejemplo, las clases en el paquete javax.xml.crypto vivirán en una estructura de directorio de ... \ javax \ xml \ crypto.
Cabe señalar que el compilador no reconoce la jerarquía creada. Los nombres de los paquetes y subpaquetes muestran la relación que las clases que contienen tienen entre sí..
Pero, en lo que respecta al compilador, cada paquete es un conjunto distinto de clases. No ve una clase en un subpaquete como parte de su paquete padre. Esta distinción se hace más evidente cuando se trata de usar paquetes.
Existe una convención de nomenclatura estándar para paquetes. Los nombres deben estar en minúsculas. Con proyectos pequeños que solo tienen unos pocos paquetes, los nombres suelen ser simples (¡pero significativos!):
paquete pokeranalyzer
paquete mycalculator
En empresas de software y grandes proyectos, donde los paquetes pueden importarse a otras clases, los nombres deben ser distintivos. Si dos paquetes diferentes contienen una clase con el mismo nombre, es importante que no haya conflicto de nombres. Esto se hace asegurando que los nombres de los paquetes sean diferentes al comenzar el nombre del paquete con el dominio de la compañía, antes de dividirlos en capas o características:
paquete com.mycompany.utilities
paquete org.bobscompany.application.userinterface