Java では、クラス名の競合やクラス ファイル管理などの問題を解決するために、クラスに多層の名前空間を提供するパッケージ メカニズムが導入されています。
Java では、機能的に関連するクラスのグループを同じパッケージの下に配置して、論理クラス ライブラリ ユニットを形成できます。指定したパッケージ構造の下にクラスを配置したい場合は、Java ソース プログラムのコメント以外の最初の行に次の形式のコードを配置する必要があります:
package packagename;
このパッケージ ステートメントが Java ソース ファイルで使用されると、これは、このソース ファイルで定義されているすべてのクラスがこのパッケージに属していることを意味します。パッケージ内にある各クラスの完全なクラス名は、パッケージ名とクラス名を組み合わせたものである必要があります。他の人がそのパッケージ内のクラスを使用する必要がある場合は、パッケージ名とクラス名も使用する必要があります。
javac -d . Hello.java 与 javac Hello.java 的区别? package lee;public class Hello{ public static void main(String[] args) { System.out.println("Hello World!"); } }
-d オプションは本来、コンパイルされたクラス ファイルの保存場所を設定するために使用され、生成されたクラス ファイルが現在のパスに配置されることを指定します。このコマンドを使用してコンパイルすると、現在のパスの下に lee という名前のフォルダーが生成され、このフォルダーの下に Hello.class ファイルが作成されます。
javac Hello.java コマンドを直接使用してコンパイルすると、現在のパスに Hello.class ファイルが生成され、lee フォルダーは生成されません。
同じパッケージ内のクラスは同じフォルダーに存在する必要がありますか?
同じフォルダーに存在する必要はありません。たとえば、CLASSPATH 環境変数にこれら 2 つのパスが含まれている限り、lee.person と lee.personTest という 2 つのクラスを C ドライブに配置し、もう 1 つを D ドライブに配置できます。
パッケージに名前を付けるにはどうすればよいですか?
パッケージ名は通常、すべて小文字であり、1 つ以上の意味のある単語で構成されます。開発中にパッケージ名とクラス名が同時に重複するのを避けるために、Oracle では、会社のインターネット ドメイン名を逆にしてパッケージ名として使用することをお勧めします。たとえば、インターネット ドメイン名がcrazyit.org の場合は、会社のすべてのクラスを使用します。 org.crazyit パッケージとそのサブパッケージに配置されます。
逆さまに書かれたドメイン名.プロジェクト名.モジュール名.コンポーネント名
同じパッケージ内のクラスは、パッケージプレフィックスを追加せずに相互にアクセスできますか?
はい。
親パッケージと子パッケージは、パッケージプレフィックスを追加せずに相互にアクセスできますか?
いいえ、パッケージプレフィックスを追加する必要があります。
インポートキーワード
上記でわかるように、異なるパッケージ内の他のクラスを使用する必要がある場合は、常にクラスの完全名を使用する必要があり、これは面倒なことです。プログラミングを簡素化するために、Java では import キーワードが導入されました。import キーワードは、指定されたパッケージ レベルにある特定のクラスまたはすべてのクラスのみを特定の Java ファイルにインポートできます。import ステートメントは、package ステートメントの後、クラス定義の前に指定する必要があります。 Java ソース ファイルには package ステートメントを 1 つだけ含めることができますが、複数の import ステートメントを使用して、複数のパッケージ レベルでクラスをインポートできます。
导入单个类: import package.subpackage...ClassName; 导入全部类: import package.subpackage...*;
上記の (*) はクラスのみを表すことができ、パッケージを表すことはできません。
Javaでよく使われるパッケージ
Javaのコアクラスはjavaパッケージとそのサブパッケージの下に配置され、Javaによって拡張された多くのクラスはjavaxパッケージとそのサブパッケージの下に配置されます。これらの実用的なクラスは、前述のAPI (Application Interface) であり、Oracle はこれらのクラスの機能に応じて異なるパッケージに配置します。以下のパッケージは Java で一般的に使用されるパッケージです。
java.lang: このパッケージには、Sting、Math、System、Tread クラスなどの Java 言語のコア クラスが含まれています。このパッケージ内のクラスを使用するためにインポート ステートメントを使用する必要はありません。このパッケージの種類のすべてのクラスをインポートします。
java.util: このパッケージには、配列、リスト、セットなど、多数の Java ツール クラス/インターフェイスとコレクション フレームワーク クラス/インターフェイスが含まれています。
java.net: このパッケージには、Java ネットワーク プログラミングに関連するいくつかのクラス/インターフェイスが含まれています。
java.io: このパッケージには、いくつかの Java 入出力関連のクラス/インターフェースが含まれています。
java.text: このパッケージには、Java フォーマット関連のクラスがいくつか含まれています。
java.sql: このパッケージには、JDBC データベース プログラミングに関連するいくつかの Java クラス/インターフェイスが含まれています。
java.awt: このパッケージには、抽象ウィンドウ ツールキット (抽象ウィンドウ ツールキット) の関連クラス/インターフェイスが含まれています。これらのクラスは、主にグラフィカル ユーザー インターフェイス (GUI) プログラムを構築するために使用されます。
java.swing: このパッケージには、Swing グラフィカル ユーザー インターフェイス プログラミングに関連するクラス/インターフェイスが含まれています。これらのクラスは、プラットフォームに依存しない CUI プログラムの構築に使用できます。
【関連する推奨事項】
1. Java パッケージの命名規則をマスターする必要があります
2. Java ソフトウェアエンジニアは、php の php -15 名前空間と Java のパッケージを学びます
3. 崇高なテキスト 2 方法/3 に Package Control をインストールして使用します
4. 新しい JavaClass と Package を作成できない問題の解決策の図
以上がJava パッケージのサンプル チュートリアルを深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。