Package in Java

Package in Java

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).
All we need to do is put related classes into packages. After that we can simply write an import a class from existing packages and use it in our program. A package is containers of group of related classes where some of the classes are accessible are exposed and others are kept for internal purpose. We can reuse existing classes from the packages as many times as we need it in our program.
How packages work?

Package names and directory structure are closely related. For example if a package name is college.staff.bsc, then there are three directories, collegestaff and bsc such that bsc is present in staff and staff is present college. Also, the directory college is accessible through CLASSPATH variable, i.e., path of parent directory of college is present in CLASSPATH. The idea is to make sure that classes are easy to locate.

Package naming conventions: Packages are named in reverse order of domain names, i.e., org.smgc.student.bsc.sem4. For example, in a college, the recommended convention is college.science.bsc, college. .science.bca, college.art.bsw, etc.

Adding a class to a Package: We can add more classes to an 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 Package



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.


Comments

Popular posts from this blog

પટેલ સમાજનો ઈતિહાસ જાણો : કોણ અને ક્યાંથી આવ્યા હતા પાટીદારો

Python HTML Generator using Yattag Part 1

Java Event Delegation Model, Listener and Adapter Classes