Package in Java is a mechanism to encapsulate a group of classes, sub packages and interfaces. Packages are used for:
▪︎Preventing naming conflicts. For example there can be two classes with name Employee in two packages, college.staff.cse.Employee and college.staff.ee.Employee
▪︎Making searching/locating and usage of classes, interfaces, enumerations and annotations easier
▪︎Providing controlled access: protected and default have package level access control. A protected member is accessible by classes in the same package and its subclasses. A default member (without any access specifier) is accessible by classes in the same package only.
▪︎Packages can be considered as data encapsulation (or data-hiding).
Adding a class to a Package : We can add more classes to a created package by using package name at the top of the program and saving it in the package directory. We need a new java file to define a public class, otherwise we can add the new class to an existing .java file and recompile it.
Subpackages: Packages that are inside another package are the subpackages. These are not imported by default, they have to imported explicitly. Also, members of a subpackage have no access privileges, i.e., they are considered as different package for protected and default access specifiers.
Example :
import java.util.*;
util is a subpackage created inside java package.
Accessing classes inside a package
Consider following two statements :
// import the Vector class from util package. import java.util.vector; // import all the classes from util package import java.util.*;
First Statement is used to import Vector class from util package which is contained inside java.
Second statement imports all the classes from util package.
Types of packages:
1) user defined packages
2)In built packages
Built-in Packages
These packages consist of a large number of classes which are a part of Java API.Some of the commonly used built-in packages are:
1) java.lang: Contains language support classes(e.g classed which defines primitive data types, math operations). This package is automatically imported.
2) java.io: Contains classed for supporting input / output operations.
3) java.util: Contains utility classes which implement data structures like Linked List, Dictionary and support ; for Date / Time operations.
4) java.applet: Contains classes for creating Applets.
5) java.awt: Contain classes for implementing the components for graphical user interfaces (like button , ;menus etc).
6) java.net: Contain classes for supporting networking operations.
User-defined packages
These are the packages that are defined by the user. First we create a directory myPackage (name should be same as the name of the package). Then create the MyClass inside the directory with the first statement being the package names.
Let us make an example program where we will create a user-defined package in a systematic manner.
Program source code 1:
1
// Save as Example.java
2
3
Step 1: Declare package name by reversing domain name, project name 'java' and module name is core java.
4
package com.scientecheasy.java.corejava;
5
6
Step 2:Declare class name.
7
public class Example
8
{
9
public static void main(String[] args)
10
{
11
System.out.println(" My first basic example");
12
}
13
}
How to compile package in Java?
If you are not using any Eclipse IDE, you follow the syntax given below:
Syntax:
To Compile the application: javac -d directory javafilename
1. Here, javac means java compiler.
2. -d means directory. It creates the folder structure.
3. .(dot) means the current directory. It places the folder structure in the current working directory.
How to run Java package program?
You have to use the fully qualified name to execute java code. The fully qualified name means class name with a complete package structure. Use below syntax to run java code.
Syntax:
java completePackageName.className
Now run the above Java code.
To Run: java com.scientecheasy.java.corejava.Example
Output:
My first basic example.