1. 3/30/2019 Packages - access protection, importing packages: Your Guided Course Template
https://canvas.instructure.com/courses/1480238/pages/packages-access-protection-importing-packages?module_item_id=21012860 1/2
Packages - access protec on, impor ng
packages
Package
Package in Java is a mechanism to encapsulate a group of classes, sub packages and interfaces.
Packages are used for:
Java package is used to categorize the classes and interfaces so that they can be easily maintained.
Java package provides access protection.
Java package removes naming collision.
All related classes are put into packages. After that we can import a class from existing packages and use it in our
program. A packages is container 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 time as we need it in our program.
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.
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.
Types of 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.
The package keyword is used to create a package in java.
//save by A.java in 'pack' directory
package pack;
public class A
{
public void msg()
{
System.out.println("Hello");
}
}
There are three ways to access the package from outside the package.
2. 3/30/2019 Packages - access protection, importing packages: Your Guided Course Template
https://canvas.instructure.com/courses/1480238/pages/packages-access-protection-importing-packages?module_item_id=21012860 2/2
1. import package.*;
2. import package.classname;
3. fully qualified name.
Using packagename.*
If you use package.* then all the classes and interfaces of this package will be accessible but not subpackages.
import pack.*;
class Demo
{
public static void main(String args[])
{
A obj = new A();
obj.msg();
}
}
Using packagename.classname
If you import package.classname then only declared class of this package will be accessible.
import pack.A;
class Demo
{
public static void main(String args[])
{
A obj = new A();
obj.msg();
}
}
Using fully qualified name
If you use fully qualified name then only declared class of this package will be accessible. Now there is no need to
import. But you need to use fully qualified name every time when you are accessing the class or interface.
It is generally used when two packages have same class name e.g. java.util and java.sql packages contain Date
class.
class Demo
{
public static void main(String args[])
{
A obj = new pack.A();
obj.msg();
}
}
Output:
Hello