0% found this document useful (0 votes)
50 views

Packages: Sudhir Talasila Preeti Navale

Packages in Java are used to organize classes and interfaces by grouping related ones together. A package declaration at the top of a Java file specifies the package that class belongs to. Packages follow a hierarchical naming convention with levels separated by periods. Classes within the same package can access each other more easily. Jar files are used to bundle compiled classes from a package. Care must be taken to properly structure code into packages and set the CLASSPATH to avoid errors.

Uploaded by

Muhammad Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Packages: Sudhir Talasila Preeti Navale

Packages in Java are used to organize classes and interfaces by grouping related ones together. A package declaration at the top of a Java file specifies the package that class belongs to. Packages follow a hierarchical naming convention with levels separated by periods. Classes within the same package can access each other more easily. Jar files are used to bundle compiled classes from a package. Care must be taken to properly structure code into packages and set the CLASSPATH to avoid errors.

Uploaded by

Muhammad Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 25

Packages

Sudhir Talasila
Preeti Navale
Introduction
• Packages are nothing more than the way we
organize files into different directories according
to their functionality, usability as well as category
they should belong to .

• A Java package is a Java programming language


mechanism for organizing classes into
namespaces.
Intoduction
• Java source files belonging to the same category or
providing similar functionality can include a package
statement at the top of the file to designate the
package for the classes the source file defines.
• Java packages can be stored in compressed files
called JAR files.
• An obvious example of packaging is the JDK
package from SUN (java.xxx.yyy) as shown below:
Introduction
Introduction
• Packaging also help us to avoid class name collision
when we use the same class name as that of others.
• For example, if we have a class name called
"Vector", its name would crash with the Vector class
from JDK. However, this never happens because
JDK uses java.util as a package name for the Vector
class (java.util.Vector ).
• Understanding the concept of a package will also
help us manage and use files stored in jar files in
more efficient ways.
Using Packages
• To use a package inside a Java source file, it
is convenient to import the classes from the
package with an import statement.
• import java.awt.event.*;
• The above statement imports all classes from
the java.awt.event package.
Package access protection
• Classes within a package can access classes
and members declared with default access
and class members declared with the
protected access modifier.
• Default access is enforced when neither the
public, protected nor private access modifier
is specified in the declaration.
Creation Of Jar Files
• In Java source files the package the file belongs to is
specified with the package keyword .
• package java.awt.event;
• JAR Files are created with the jar command-line
utility.
• The command “jar cf myPackage.jar *.class”
compresses all *.class files into the JAR file
myPackage.jar.
Package Naming Conventions

• Packages are usually defined using a


hierarchical naming pattern, with levels in the
hierarchy separated by periods (.) .
• Although packages lower in the naming
hierarchy are often referred to a
"subpackages" of the corresponding
packages higher in the hierarchy, there is no
semantic relationship between packages.
Organizational Package Naming
Conventions

• Package names should be all lowercase characters


whenever possible.
• Frequently a package name begins with the
top level domain name of the organization
and then the organization's domain and then
any subdomains listed in reverse order.
• The organization can then choose a specific name for
their package..
Package Design Guidelines

• Design Guideline Package Cohesion


– Only closely related classes should belong to the same
package.
– Classes that change together should belong to the same
package.
– Classes that are not reused together should not belong to
the same package.
Coding and compiling
• At the top of each of the source files (before
any imports or anything else other than
comments), you should have a package
declaration.
• For example, CompanyApp.java would start
with:
• package com.mycompanypackage;
Coding and Compiling
• At the top of each of your source files (before
any imports or anything else other than
comments), you should have a package
declaration. For example, CompanyApp.java
would start with: package
com.mycompanypackage;
Running the application
• Many people "accidentally" end up with their classes
in the right place, etc, just by luck, but then run into
errors like:
• java.lang.NoClassDefFoundError: MyCompanyApp
(wrong name:
com/mycompanypackage/MyCompanyApp.
• c:\java\com\mycompanypackage> java
MyCompanyApp
Running the Application
• Here's how to avoid it:
• Stay in your "root" directory, eg c:\java
• Always use the fully qualified classname.
So, for example:
• c:\java> java
com.mycompanypackage.MyCompanyApp
Package Declaration
• Package declaration is file based;
– All classes in the same source file belong to the same
package.
– Each source file may contain an optional package
declaration in the following form.
Package packagename;
– Let us consider the source file ElevatorFrame.java, for
example.
Package elevator;
Public class ElevatorFrame
{ public double x; //……..}
Package Declaration
• The package declaration at the top of the source file declares
that the ElevatorFrame class belongs to the package named
elevator.
• When the package declaration is absent from a file, all the
classes contained in the file belong to unnamed package.
• A class in a named package can be referred in two ways.
Using Packages
– Class in a named package can be referred to in two
different ways
• Using the fully qualified name packagename.ClassName
• We can refer to the ElevatorPanel class in package elevator as
elevator.ElevatorPlanel
Importing a class in the package

• Importing the class using the simple class name


– We can import a class or all the classes in the designated
package using
Import packagename.ClassName;
Import packagename.*;
– The ElevatorPanel class in package elevator can simply be
referred to as elevator when either of the following import
clauses occurs at the top of source file
Import elevator.ElevatorPanel;
Import elevator.*;
Packages – Directory Paths

• The CLASSPATH
– List of directories and/or jar files. The compiler will look in
these directories for any precompiled files it needs.
– The CLASSPATH can be set as an environmental variable or
specified on the command line using –classpath option.
– The CLASSPATH is also used by the Java Virtual Machine
to load classes.
Compile Package Classes

• Compile the program


– To compile the program, we must change the working
directory to the source directory root, and issue the following
command
c:\project> javac -d . elevator\*.java
– By compiling everything, we get the recent version of all the
classes.
– Specify –d . option to tell the compiler to put the classes in a
package structure starting at the root.
Common Mistakes
• Common mistakes while running the program
– The directory structure for elevator program is
C:\Project\elevator.
– Run the program from elevator directory, and we will get the
following error message

c:\project\elevator>java ElevatorSimulation
Exception in thread "main" java.lang.NoClassDefFoundError:
ElevatorSimulation
– The program runs successfully by running the program from
c:\project directory.
Incorrect CLASSPATH
• Running the program with incorrect CLASSPATH
– Example: If the directory c:\project is not added to the
CLASSPATH, and if you run the program, we will get the
following error message

c:\project>java eElevator.ElevatorSimulation
Exception in thread "main" java.lang.NoClassDefFoundError:
elevator/ElevatorSimulation
Solution
• Add c:\project to the CLASSPATH, and rerun the
program.
• The program is launched successfully without any
error messages.
References
• Object – Oriented Software Development
Using Java 2nd Edition – Xiaoping Jia
• Java Language Specifications - Chapter 7
Packages
http://java.sun.com/docs/books/jls/second_edi
tion/html/packages.doc.html

You might also like