# Paquet Java

Un paquet Java organitza les classes Java en espais de noms, proporcionant un espai de noms únic per a cada tipus que conté. Les classes del mateix paquet poden accedir mútuament als membres del paquet privat i protegits.
En general, un paquet pot contenir els següents tipus de tipus: classes, interfícies, enumeracions i tipus d'anotació. Un paquet permet a un desenvolupador agrupar classes (i interfícies) junts. Totes aquestes classes estaran relacionades d'alguna manera: totes poden tenir a veure amb una aplicació específica o realitzar un conjunt específic de tasques. Els programadors també solen utilitzar paquets per organitzar classes que pertanyen a la mateixa categoria o que proporcionen una funcionalitat similar.

## Ús de paquets

En un fitxer font de Java, el paquet al qual pertanyen la classe o les classes d'aquest fitxer s'especifica amb la paraula clau package. Aquesta paraula clau sol ser la primera paraula clau del fitxer font. Com a màxim una declaració de paquet pot aparèixer en un fitxer font.
Per utilitzar les classes d'un paquet dins d'un fitxer font Java, és convenient importar les classes del paquet amb una declaració import. La següent declaració
importa totes les classes del paquet java.awt.event, mentre que la següent declaració
Les classes també es poden utilitzar directament sense una declaració d'importació utilitzant el nom complet de la classe. Per exemple,
Classes can also be used directly without an import declaration by using the fully qualified name of the class. For example,
no requereix una declaració d'importació prèvia.

## Protecció d'accés al paquet

Els membres públics i les classes són visibles a tot arreu i els membres privats només són visibles a la mateixa classe. Les classes d'un paquet poden accedir a classes i membres declarats amb accés predeterminat (paquet-privat ), així com als membres de classe declarats amb el modificador d'accés protected. L'accés per defecte (paquet-privat) s'aplica quan una classe o un membre no s'ha declarat com a public, protected o private. Per contra, les classes d'altres paquets no poden accedir a les classes i als membres declarats amb accés per defecte. Tanmateix, es pot accedir als membres de classe declarats com a protected des de les classes del mateix paquet, així com des de les classes d'altres paquets que són subclasses de la classe declarant.

## Creació de fitxers JAR

Els fitxers JAR es creen amb la utilitat de línia d'ordres jar. La comanda
jar cf myPackage.jar *.class
comprimeix tots els fitxers.class al fitxer JAR myPackage.jar. L'opció "c" de la línia d'ordres indica a l'ordre jar que "creï un nou arxiu". L'opció 'f' li indica que creï un fitxer. El nom del fitxer ve després del contingut del fitxer JAR.

## Paquets bàsics a Java SE 8

| java.lang | funcionalitat bàsica del llenguatge i tipus fonamentals que està disponible sense l'ús d'una declaració d'importació. |
| java.util | classes d'estructura de dades de recollida |
| java.io | operacions de fitxers |
| java.matemàtiques | aritmètica multiprecisió |
| java.nio | el marc d'E/S sense bloqueig per a Java |
| java.net | operacions de xarxa, sòcols, cerques de DNS,... |
| java.seguretat | generació de claus, xifratge i desxifrat |
| java.sql | Connectivitat de bases de dades Java (JDBC) per accedir a bases de dades |
| java.awt | jerarquia bàsica de paquets per a components natius de la GUI |
| java.text | Proporciona classes i interfícies per gestionar text, dates, números i missatges d'una manera independent dels llenguatges naturals. |
| java.rmi | Proporciona el paquet RMI. |
| java.time | L'API principal per a dates, hores, instants i durades. |
| java.beans | El paquet java.beans conté classes i interfícies relacionades amb components JavaBeans. |
| java.applet | Aquest paquet proporciona classes i mètodes per crear i comunicar-se amb les miniaplicacions. |

## Referències

* ↑ «Java Packages» (en anglès americà). [Consulta: 30 desembre 2023].
* ↑ «Creating and Using Packages (The Java™ Tutorials > Learning the Java Language > Packages)» (en anglès). [Consulta: 30 desembre 2023].
* ↑ «Guide to Java Packages» (en anglès). [Consulta: 30 desembre 2023].
* ↑ «Controlling Access to Members of a Class (The Java™ Tutorials > Learning the Java Language > Classes and Objects)» (en anglès). docs.oracle.com.