As the name implies packages are used for packing related sets of types (classes, interfaces, enums and annotations) together. There must be multiple types defined in your project. Without organizing them in some order you may find it difficult to locate them or you may experience name conflicts while defining new types. Here come packages to save you, when you have name conflicts issues or you want to have a well-organized codebase. Let's dive deep into the package concept through some examples.
This is a companion discussion topic for the original entry at http://iq.opengenus.org/java-package/