Programatorii sunt un grup organizat atunci când vine vorba de scrierea codului. Le place să-și aranjeze programele astfel încât să curgă într-un mod logic, apelând blocuri de cod separate care au fiecare o anumită lucrare. Organizarea claselor pe care le scriu se face prin crearea de pachete.
Un pachet permite dezvoltatorului să grupeze clase (și interfețe) împreună. Toate aceste clase vor fi înrudite într-un fel - s-ar putea ca toate să aibă legătură cu o anumită aplicație sau să îndeplinească un set specific de sarcini. De exemplu, API-ul Java este plin de pachete. Unul dintre ele este pachetul javax.xml. Acesta și sub-pachetele sale conțin toate clasele din API-ul Java care au legătură cu manipularea XML.
Pentru a grupa clasele într-un pachet, fiecare clasă trebuie să aibă o instrucțiune de pachet definită în partea de sus a fișierului .java. Acesta permite compilatorului să știe ce pachet aparține clasei și trebuie să fie prima linie de cod. De exemplu, imaginați-vă că faceți un joc simplu Battleships. Este logic să puneți toate clasele necesare într-un pachet numit nave de luptă:
pachet de nave de luptă
class GameBoard
Fiecare clasă cu instrucțiunea de pachet de mai sus în partea de sus va face parte acum din pachetul Battleships.
De obicei pachetele sunt stocate într-un director corespunzător pe sistemul de fișiere, dar este posibil să le stochezi într-o bază de date. Directorul din sistemul de fișiere trebuie să aibă același nume ca pachetul.
Este locul în care sunt stocate toate clasele aparținând acelui pachet. De exemplu, dacă pachetul de nave de luptă conține clasele GameBoard, Ship, ClientGUI, atunci vor fi stocate fișiere numite GameBoard.java, Ship.java și ClientGUI.java stocate într-un director de navigație pentru apeluri.
Organizarea cursurilor nu trebuie să fie la un singur nivel. Fiecare pachet poate avea la fel de multe sub pachete necesare. Pentru a distinge pachetul și sub pachetul "". este plasat între numele pachetului.
De exemplu, numele pachetului javax.xml arată că XML este un sub-pachet al pachetului javax. Nu se oprește aici, sub XML există 11 sub pachete: legare, crypto, tip de date, spațiu de nume, analizoare, săpun, flux, transformare, validare, ws și XPath.
Directoarele din sistemul de fișiere trebuie să corespundă cu ierarhia pachetelor. De exemplu, clasele din pachetul javax.xml.crypto vor trăi într-o structură de director de ... \ javax \ xml \ crypto.
Trebuie remarcat faptul că ierarhia creată nu este recunoscută de compilator. Numele pachetelor și sub-pachetelor arată relația pe care o au clasele pe care le conțin.
Dar, în ceea ce privește compilatorul, fiecare pachet este un set distinct de clase. Nu vede o clasă dintr-un sub pachet ca făcând parte din pachetul parental. Această distincție devine mai evidentă când vine vorba de utilizarea pachetelor.
Există o convenție de denumire standard pentru pachete. Numele trebuie să fie cu litere mici. Cu proiecte mici care au doar câteva pachete, numele sunt de obicei nume simple (dar semnificative!):
pachet pokeranalyzer
pachet miccalculator
În companiile de software și proiecte mari, unde pachetele ar putea fi importate în alte clase, numele trebuie să fie distincte. Dacă două pachete diferite conțin o clasă cu același nume, este important să nu existe un conflict de denumire. Acest lucru se face prin asigurarea diferitelor denumiri ale pachetului prin pornirea numelui pachetului cu domeniul companiei, înainte de a fi împărțit în straturi sau caracteristici:
pachet com.mycompany.utilities
pachet org.bobscompany.application.userinterface