Professional Documents
Culture Documents
A Java package organizes Java classes into namespaces,[1] providing a unique namespace for
each type it contains. Classes in the same package can access each other's package-private
and protected members.
In general, a package can contain the following kinds of types: classes, interfaces,
enumerations, and annotation types. A package allows a developer to group classes (and
interfaces) together. These classes will all be related in some way – they might all have to do
with a specific application or perform a specific set of tasks.
Programmers also typically use
packages to organize classes belonging to the same category or providing similar functionality.
Using packages
In a Java source file, the package that this file's class or classes belong to is specified with the
package keyword. This keyword is usually the first keyword in the source file. At most one
package declaration can appear in a source file.
package java.awt.event;
To use a package's classes inside a Java source file, it is convenient to import the classes from
the package with an import declaration. The following declaration
import java.awt.event.*;
imports all classes from the java.awt.event package, while the next declaration
import java.awt.event.ActionEvent;
imports only the ActionEvent class from the package. After either of these import
declarations, the ActionEvent class can be referenced using its simple class name:
Classes can also be used directly without an import declaration by using the fully qualified name
of the class. For example,
Documentation explaining the package as a whole is written as Javadoc in a file named exactly
`package-info.java`. That file is also the place for annotations to be used across all classes of
the package.[2]
If a package declaration is not used, classes are placed in an unnamed package. Classes in an
unnamed package cannot be imported by classes in any other package.[3] The official Java
Tutorial advises against this:
Generally speaking, an unnamed package is only for small or temporary applications or when
you are just beginning the development process. Otherwise, classes and interfaces belong in
named packages.[4]
JAR files are created with the jar command-line utility. The command
compresses all .class files into the JAR file myPackage.jar. The 'c' option on the command line
tells the jar command to "create new archive." The ' f ' option tells it to create a file. The file's
name comes next before the contents of the JAR file.
Packages are usually defined using a hierarchical naming pattern, with some levels in the
hierarchy separated by periods ( . , pronounced "dot"). Although packages lower in the naming
hierarchy are often referred to as "subpackages" of the corresponding packages higher in the
hierarchy, there is almost no semantic relationship between packages. The Java Language
Specification establishes package naming conventions to avoid the possibility of two published
packages having the same name. The naming conventions describe how to create unique
package names, so that packages that are widely distributed will have unique namespaces. This
allows packages to be separately, easily and automatically installed and catalogued.
In general, 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 its package. Subsequent components of the package name
vary according to an organization's own internal naming conventions.[6]
For example, if an organization in Canada called MySoft creates a package to deal with
fractions, naming the package ca.mysoft.fractions distinguishes the fractions package
from another similar package created by another company. If a German company named MySoft
also creates a fractions package, but names it de.mysoft.fractions, then the classes in
these two packages are defined in a unique and separate namespace.
Complete conventions for disambiguating package names and rules for naming packages when
the Internet domain name cannot be directly used as a package name are described in section
7.7 of the Java Language Specification.[7]
basic language functionality and fundamental types that is available without the
java.lang
use of an import statement.
Provides classes and interfaces for handling text, dates, numbers, and messages
java.text
in a manner independent of natural languages.
java.time The main API for dates, times, instants, and durations.
This package provides classes and methods to create and communicate with the
java.applet
applets.
Modules
In Java 9 (released on September 21, 2017) support for "modules", a kind of collection of
packages, was implemented as a result of the development effort of Project Jigsaw. The
"modules" were earlier called "superpackages" and originally planned for Java 7.
References
External links
Retrieved from
"https://en.wikipedia.org/w/index.php?
title=Java_package&oldid=1113914752"
Last edited 2 months ago by Maxim Masiutin