Creating and using packages in Java

While creating a package, you should choose a name for the package and include a package statement along with that name at the top of every source file that contains the classes, interfaces, enumerations, and annotation types that you want to include in the package. 

The package statement should be the first line in the source file. There can be only one package statement in each source file, and it applies to all types in the file.

If a package statement is not used then the class, interfaces, enumerations, and annotation types will be placed in the current default package. 

To compile the Java programs with package statements, you have to use -d option as shown below.

javac -d Destination_folder

Then a folder with the given package name is created in the specified destination, and the compiled class files will be placed in that folder.


Let us look at an example that creates a package called animals. It is a good practice to use names of packages with lower case letters to avoid any conflicts with the names of classes and interfaces.

Following package example contains interface named animals −

/* File name : */ package animals;
interface Animal { public void eat(); public void travel(); }

Now, let us implement the above interface in the same package animals −

package animals; /* File name : */
public class MammalInt implements Animal {
   public void eat() {
      System.out.println("Mammal eats");
   public void travel() {
      System.out.println("Mammal travels");
   public int noOfLegs() {
      return 0;
   public static void main(String args[]) {
      MammalInt m = new MammalInt();;;

Now compile the java files as shown below −

$ javac -d . $ javac -d .

Now a package/folder with the name animals will be created in the current directory and these class files will be placed in it as shown below.

You can execute the class file within the package and get the result as shown below.

Mammal eats
Mammal travels