Package in Java

  • Packages are used in Java in order to prevent naming conflicts, to control access, to make searching/locating and usage of classes, interfaces, enumerations and annotations easier, etc.
  • A package is a collection of related Java entities (such as classes, interfaces, exceptions, errors and enums).
  • A package provides a mechanism for grouping a variety of similar types of classes, interfaces and sub-packages
  • Grouping is based on functionality
  • Java packages can be stored in compressed files called JAR files (Java Archieve)
  • Resolving naming conflict of classes by prefixing the class name with a package name

-com.zzz.Circle and com.yyy.Circle are two distinct classes.

-Fully-qualified class name - package name plus class name. This mechanism is called Namespace Management.


  • The classes contained in the packages of other programs can be reused.
  • In packages, classes can be unique compared with classes in other packages.
  • Packages provides a way to hide classes.

Two types of packages:

  • Java API packages
  • User defined packages

Java API packages

A large number of classes grouped into different packages based on functionality. Examples:

  • java.lang - Contains classes for primitive types, strings, math functions, threads, and exception
  • java.util - Contains classes such as vectors, hash tables, date etc.
  • - Stream classes for I/O
  • java.awt - Classes for implementing GUI – windows, buttons, menus etc.
  • - Classes for networking
  • java. Applet - Classes for creating and implementing applets


  • Package names are dot separated, e.g., java.lang.
  • Packages Avoid name space collision. There can not be two classes with same name in a same Package But two packages can have a class with same name.
  • Exact Name of the class is identifed by its package structure.

<<Fully Qualified Name>>

  • java.lang.String ;java.util.Arrays; ;java.util.Date

Accessing Classes in a Package

  • Fully Qualified class name: Example: java.awt.Color
  • import packagename.classname; Example: import java.awt.Color;


  • import packagename.*; Example: import java.awt.*;
  • Own package – package package_name;Example - package MyPackage;

Creating Your Own Package

  • Declare the package at the beginning of a file using the form

package packagename;

  • Define the class that is to be put in the package and declare it public.
  • Create a subdirectory under the directory where the main source files are stored
  • Store the listing as in the subdirectory created.
  • Compile the file. This creates .class file in the subdirectory.


//save by
package pack;
public class A 
public void msg() 
//save by
package mypack; 
import pack.A;
class B {
public static void main(String args[]) 
pack.A obj = new pack.A(); //using fully qualified name