Οι προγραμματιστές είναι μια οργανωμένη δέσμη όταν πρόκειται να γράψει κώδικα. Τους αρέσει να οργανώνουν τα προγράμματά τους έτσι ώστε να ρέουν με λογικό τρόπο, καλώντας χωριστά μπλοκ κώδικα που ο καθένας έχει μια συγκεκριμένη δουλειά. Η οργάνωση των τάξεων που γράφουν γίνεται με τη δημιουργία πακέτων.
Ένα πακέτο επιτρέπει σε έναν προγραμματιστή να ομαδοποιεί τάξεις (και διεπαφές) μαζί. Αυτές οι κλάσεις θα σχετίζονται με κάποιο τρόπο - όλοι θα μπορούσαν να έχουν σχέση με μια συγκεκριμένη εφαρμογή ή να εκτελέσουν ένα συγκεκριμένο σύνολο εργασιών. Για παράδειγμα, το Ιάβα Το API είναι γεμάτο πακέτα. Ένα από αυτά είναι το πακέτο javax.xml. Αυτό και τα δευτερεύοντα πακέτα του περιέχουν όλες τις κλάσεις στο Java API για να κάνουν με το χειρισμό XML.
Για να ομαδοποιήσετε τάξεις σε ένα πακέτο, κάθε κλάση πρέπει να έχει μια εντολή πακέτου που ορίζεται στην κορυφή της.java αρχείο. Επιτρέπει στον μεταγλωττιστή να γνωρίζει σε ποιο πακέτο ανήκει η τάξη και πρέπει να είναι η πρώτη γραμμή κώδικα. Για παράδειγμα, φανταστείτε ότι φτιάχνετε ένα απλό παιχνίδι Τείχους. Είναι λογικό να τοποθετηθούν όλες οι κατηγορίες που απαιτούνται σε ένα πακέτο που ονομάζεται θωρηκτό:
Εκεί αποθηκεύονται όλες οι κλάσεις που ανήκουν σε αυτή τη συσκευασία. Για παράδειγμα, εάν το πακέτο των θωρηκτών περιέχει τις κλάσεις GameBoard, Ship, ClientGUI τότε εκεί θα είναι αρχεία που ονομάζονται GameBoard.java, Ship.java και ClientGUI.java αποθηκευμένα σε κλήση καταλόγου θωρηκτά.
Για παράδειγμα, το όνομα του πακέτου javax.xml δείχνει ότι το XML είναι ένα δευτερεύον πακέτο του πακέτου javax. Δεν σταματάει εκεί, κάτω από XML υπάρχουν 11 δευτερεύοντα πακέτα: bind, crypto, datatype, namespace, parsers, σαπούνι, ροή, μετασχηματισμός, επικύρωση, ws και XPath.
Οι κατάλογοι στο σύστημα αρχείων πρέπει να ταιριάζουν με την ιεραρχία των πακέτων. Για παράδειγμα, οι κλάσεις στο πακέτο javax.xml.crypto θα ζουν σε μια δομή καταλόγου.. \ javax \ xml \ crypto.
Όμως, όσον αφορά τον compiler, κάθε πακέτο είναι ένα ξεχωριστό σύνολο κατηγοριών. Δεν βλέπει μια τάξη σε μια δευτερεύουσα συσκευασία ως μέρος του γονικού πακέτου της. Αυτή η διάκριση γίνεται πιο εμφανής όταν πρόκειται για τη χρήση πακέτων.
Σε εταιρείες λογισμικού και μεγάλα έργα, όπου τα πακέτα μπορούν να εισαχθούν σε άλλες κατηγορίες, τα ονόματα πρέπει να είναι διακριτικά. Εάν δύο διαφορετικά πακέτα περιέχουν μια κλάση με το ίδιο όνομα, είναι σημαντικό να μην υπάρχει σύγκρουση ονομασίας. Αυτό γίνεται με την εξασφάλιση διαφορετικών ονομάτων πακέτων, ξεκινώντας το όνομα του πακέτου με τον τομέα της εταιρείας, πριν να χωριστεί σε στρώματα ή χαρακτηριστικά: