Packages in Java provide three main benefits: reusability, allowing classes with the same name in different packages, and hiding classes to prevent other packages from accessing them. Packages are organized hierarchically, so sub-packages can be created within packages. Classes within a package are accessible to other classes in the same package, and classes declared public in one package are accessible to another package.
Benefits.
1. Reusability
2. Twoclasses in two different packages can have the same name.
3. They provide a way to hide classes preventing other programs or packages from
accessing the packages.
Categories
1. Java API Packages
2. User defined Packages
3.
java.lang
Include classesof primitive types,strings,threads,exceptions etc.
java.util
Include language utility classes like date time,vectors,hashtables etc.
java.io
Include I/O support classes
java.awt.
Includes classes for implementing the GUI
java.net
Contains classes for networking.
java.applet
Contains classes for creating and implementing applets
The General formof creating a package is
package packagename;---------------package declaration
public class Classname---------------class definition
{
Body of the class
}
The General form of Accessing a package is
import package1 [.package2] [.package3].classname;
6.
Classes inone ore more source files can be part of the same
packages.
As packages in Java are organised hierarchically, sub-packages
can be created as follows:
package myPackage.Math
package myPackage.secondPakage.thirdPackage
Store “thirdPackage” in a subdirectory named
“myPackagesecondPackage”. Store “secondPackage” and
“Math” class in a subdirectory “myPackage”.
7.
As indicatedearlier, classes in packages can be
accessed using a fully qualified name or using
a short-cut as long as we import a
corresponding package.
The general form of importing package is:
import package1[.package2][…].classname
Example:
import myPackage.ClassA;
import myPackage.secondPackage
All classes/packages from higher-level package can
be imported as follows:
import myPackage.*;
8.
Within thecurrent directory (“abc”) store the
following code in a file named “ClassX.java”
9.
Package package1;
public classClassA
{Public void display()
{
System.out.println(“Class A”);
}
}
Import package1.classA;
class PackageTest1
{
Public static void main(String args[])
{
ClassA obj=new ClassA();
obj.display();}}
10.
package package1;
public classClassA
{
Public void display()
{
System.out.println(“Class A”);
}
}
Import package1.classA;
class PackageTest1
{
public static void main(String args[])
{
ClassA obj=new ClassA();
obj.display();}}
11.
All classes(or interfaces) accessible to all others
in the same package.
Class declared public in one package is
accessible within another. Non-public class is
not
Members of a class are accessible from a
difference class, as long as they are not private
protected members of a class in a package are
accessible to subclasses in a different class
12.
Public keywordapplied to a class, makes it
available/visible everywhere. Applied to a
method or variable, completely visible.
Private fields or methods for a class only visible
within that class. Private members are not
visible within subclasses, and are not inherited.
Protected members of a class are visible within
the class, subclasses and also within all classes
that are in the same package as that class.
13.
Accessible to: publicprotected Package
(default)
private
Same Class Yes Yes Yes Yes
Class in package Yes Yes Yes No
Subclass in
different package
Yes Yes No No
Non-subclass
different package
Yes No No No