Paket je kolekcija srodnih tipova (klasa i interfejsa) srodnost je funkcionalnog karaktera (npr. java.sql sadrži API za pristup i procesiranje podataka smeštenih u nekom izvoru, tipa relacione baze, upotrebom Java programskog jezika).
Razlozi za korišćenje paketa:
Svaka klasa pisana u Javi je deo nekog paketa.
Navođenje imena paketa kome klasa pripada
package geometry;
public class Sphere {
// Details of the class definition
}
package
mora biti prva naredba u fajlu (ne računajući prazne linije i komentare).
U fajlu može postojati samo jedna deklaracija paketa.
Jedan tip može pripadati samo jednom paketu.
Unutar jednog paketa ime tipa je jedinstveno, npr. u paketu geometry pomenutog u primeru, može postojati samo
jedna klasa sa imenom Sphere.
Ime paketa može biti složeno, npr. geometry.shapes3D
sadržaj ovog paketa ne mora da ima veze sa sadržajem paketa
geometry koji se nezavisno definiše i njegovo postojanje ne uslovljava postojanje paketa geometry.shapes3D.
public class Ball {
geometry.Sphere b = new geometry.Sphere();
//...
}
import geometry.Sphere; // ili import geometry.*;
public class Ball {
Sphere b = new Sphere();
...
}
Paket java.lang se implicitno uvozi.
Metode koje sačinjavaju alat za komunikaciju sa spoljašnjim svetom/klasama se definišu kao public. Podaci članovi ne treba da budu public osim konstanti namenjenih za opštu upotrebu. Ako očekujete da će drugi ljudi koristiti vaše klase za izvođenje sopstvenih tada podatke članove definišite kao private, ali obezbedite public get-ere i set-ere. Koristite protected kada želite neometan pristup od strane klasa u istom paketu, a za klase iz drugih paketa dozvoljen samo ako su podklase. Izostavljanje modifikatora pristupa omogućava vidljivost člana klase u svim klasama paketa, dok je za klase van paketa to isto kao i upotreba private atributa.