

JAVA PROGRAMMING
Using Package Members
Only public package members are accessible outside
the package in which they are defined. To use a public package member from
outside its package, you must either refer to the member by its long
(disambiguated) name, import the package member, or import the member's
entire package.
Each is appropriate for different situations, as explained in the
following sections.
Referring to a Package Member by Name So far, the examples in this
tutorial have referred to classes and interfaces by the name specified in
their declaration (such as Rectangle, AlarmClock, and Sleeper). Such names
are called short names. You can use a package member's short name if the
code you are writing is in the same package as that member or if the
member's package has been imported.
However, if you are trying to use a member from a
different package and that package has not been imported, then you must
use the member's long name, which includes the package name.
You could use this long name to create an instance
of graphics.Rectangle:
graphics.Rectangle myRect = new graphics.Rectangle();
You'll find that using long names is okay for one-shot uses. But you'd
likely get annoyed if you had to write graphics.Rectangle again and again.
Also, your code would get very messy and difficult to read. In such cases,
you can just import the member instead.
Importing a Package Member
To import a specific member into the current file,
put an import statement at the beginning of your file before any class or
interface definitions (but after the package statement, if there is one).
Here's how you would import the Circle class from the graphics package
created in the previous section:
import graphics.Circle;
Now you can refer to the Circle class by its short name:
Circle myCircle = new Circle();
This approach works just fine if you use just a few members from the
graphics package. But if you use many classes and interfaces from a
package, you really just want to import the whole package and forget about
it.
Importing an Entire Package
To import all of the classes and interfaces
contained in a particular package, use the import statement with the
asterisk * wildcard character:
import graphics.*;
Now you can refer to any class or interface in the graphics package by its
short name:
Circle myCircle = new Circle();
Rectangle myRectangle = new Rectangle();
The asterisk in the import statement can be used only to specify all of
the classes within a package, as shown here. It cannot be used to match a
subset of the classes in a package. For example, the following does not
match all of the classes in the graphics package that begin with
"A":
import graphics.A*; // does not work
Instead, it generates a compiler error. With the import statement, you can
import only a single package member or an entire package.
For your convenience, the Java runtime system automatically imports three
packages for you:
The default package (the package with no name)
The java.lang package
The current package

 |