It helps Organize your classes into a folder structure and make it easy to locate and use them.
More importantly,It helps improve re-usability.
Syntax:-
package <package_name>;
The following video takes you through the steps of creating a package.
Please be patient . Video will load in some time. If you still face issue viewing video click here
Assignment 1:To create a package
Step 1) Copy the following code into an editor
package p1;
class c1{
public void m1(){
System.out.println("Method m1 of Class c1");
}
public static void main(String args[]){
c1 obj = new c1();
obj.m1();
}
}
Step 2) Save the file as Demo.java. Compile the file as, javac – d . Demo.java
Step 3) Run the code as java p1.c1
Assignment 2) To create a sub-package
Step1) Copy the following code into an editor
package p1.p2;
class c2{
public void m2(){
System.out.println("Method m2 of Class c2");
}
public static void main(String args[]){
c2 obj = new c2();
obj.m2();
}
}
Step 2) Save the file as Demo2.java. Compile the file as javac – d . Demo2.java
Step 3) Run the code as java p1.p2.c2
importing a package
To create an object of a class (bundled in a package), in your code, you have to use its fully qualified name.
Ex.
java.awt.event.actionListner object = new java.awt.event.actionListner();
But , it could become tedious to type in the long dot-separated package path name for every class you want to use. Instead it is recommended you use the import statement.
Syntax
import <package_name>;
Once imported , you can use the class without mentioning its fully qualified name.
Ex:
import java.awt.event.*; // * signifies all classes in this package
import javax.swing.JFrame // here only the JFrame class is imported
//Usage
JFrame f = new JFrame; // without fully qualified name.
Assignment 3: To import package
Step 1) Copy the code into an editor.
// Using packages created in earlier assignment
package p3;
import p1.*; //imports classes only in package p1 and NOT in the sub-package p2
class c3{
public void m3(){
System.out.println("Method m3 of Class c3");
}
public static void main(String args[]){
c1 obj1 = new c1();
obj1.m1();
p1.p2.c2 obj2 = new p1.p2.c2();
obj2.m2();
}
}
Step 2) Save the file as Demo2.java . Compile the file using the command javac –d .Demo2.java
Step3) Execute the code using the command java p3.c3
Packages - points to note:
To avoid naming conflicts packages are given names of the domain name of the company in reverse Ex : com.guru99. com.microsoft, com.infosys etc.
When a package name is not specified , a class is into the default package (the current working directory) and the package itself is given no name. Hence you were able to execute assignments earlier.
While creating a package, care should be taken that the statement for creating package must be written before any other import statements
// not allowed
import package p1.*;
package p3;
//correct syntax
package p3;
import package p1.*;
java.lang package
the java.lang package is imported by default for any class that you create in Java. You can study it more in detail here.
The java API is very extensive , contains classes which can perform almost all your programming tasks right from Data Structure Manipulation til Networking. More often than not , you will be using API files in your code. You can see the API documentation here.