To use a public
package member from
outside its package, you must do one of the following:
Rectangle
and StackOfInts
. You can use a package member's
simple name if the code you are writing is in the same package
as that member or if that member has been imported.
However, if you are trying to use a member from a different package
and that package has not been imported, you must use the member's
fully qualified name, which includes the package name. Here is the
fully qualified name for the Rectangle
class declared
in the graphics
package in the previous example.
graphics.Rectangle
graphics.Rectangle
:
graphics.Rectangle myRect = new graphics.Rectangle();
import
statement at the beginning of the file before
any type definitions but after the package
statement, if there is one. Here's how you would import the
Rectangle
class from the graphics
package created in the previous
section.
import graphics.Rectangle;
Rectangle
class by its simple name.
Rectangle myRectangle = new Rectangle();
graphics
package. But if you use many types
from a package, you should import the entire package.
import
statement with the asterisk
(*)
wildcard character.
import graphics.*;
graphics
package by its simple name.
Circle myCircle = new Circle(); Rectangle myRectangle = new Rectangle();
import
statement can be used
only to specify all 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 the classes in
the graphics
package that begin with A
.
import graphics.A*; //does not work
import
statement, you generally import only a single package member or an
entire package.
import
allows you to import
the public nested classes of an enclosing
class. For example, if the
graphics.Rectangle
class contained useful nested classes, such as
Rectangle.DoubleWide
and Rectangle.Square
,
you could import Rectangle
and its nested classes by
using the following two statements.
import graphics.Rectangle; import graphics.Rectangle.*;
Rectangle
.
Another less common form of import
, the static import statement, will
be discussed at the end of this section.
java.lang
package,
and (3) the current package (the package for the current file).
java.awt
package, a java.awt.color
package, a java.awt.font
package,
and many others that begin with java.awt
. However, the java.awt.color
package,
the java.awt.font
package, and other java.awt.xxxx
packages are not
included in the java.awt
package. The prefix java.awt
(the Java Abstract Window Toolkit)
is used for a number of related packages to make the relationship evident, but not to show inclusion.
Importing java.awt.*
imports all of the types in the java.awt
package, but it does not import
java.awt.color
, java.awt.font
, or any other java.awt.xxxx
packages. If you plan to use the
classes and other types in java.awt.color
as well as those in java.awt
, you must import both packages
with all their files:
import java.awt.*; import java.awt.color.*;
graphics
package defined a class named Rectangle
.
The java.awt
package also contains a Rectangle
class. If both
graphics
and java.awt
have been imported,
the following is ambiguous.
Rectangle rect;
Rectangle
class you want. For example,
graphics.Rectangle rect;
The java.lang.Math
class defines the
PI
constant and many static methods, including
methods for calculating sines, cosines, tangents, square roots,
maxima, minima, exponents, and many more. For example,
public static final double PI 3.141592653589793 public static double cos(double a)
double r = Math.cos(Math.PI * theta);
Math
.
The static members of Math
can be imported either individually:
import static java.lang.Math.PI;
import static java.lang.Math.*;
double r = cos(PI * theta);
import static mypackage.MyConstants.*;