なぜJavaではライブラリではなくパッケージがあるのか 疑問に思っていました。この問題について、私は友人たちと多くの議論をしました。そして、パッケージをライブラリと見なすことができると彼らは言っていました。C++ には既にライブラリの概念があったため、Packages という新しい名前を作成する必要があったのはなぜですか。
PS: パッケージ ライブラリを呼び出す場合、誰かを修正する価値は本当にありますか?
なぜJavaではライブラリではなくパッケージがあるのか 疑問に思っていました。この問題について、私は友人たちと多くの議論をしました。そして、パッケージをライブラリと見なすことができると彼らは言っていました。C++ には既にライブラリの概念があったため、Packages という新しい名前を作成する必要があったのはなぜですか。
PS: パッケージ ライブラリを呼び出す場合、誰かを修正する価値は本当にありますか?
パッケージは、クラスを編成するために使用される Java 構造体です。彼らが提供します:
それでおしまい; この組織的な機能を実装者がどうするかは、実装者次第です。
ライブラリは、組織のもう 1 つの概念です。ただし、ライブラリの意図は、外部世界への明確に定義されたインターフェイスと、必要に応じて実行する内部実装を提供することです。
どちらも組織的なアイデアであり、ライブラリはパッケージで構成されていることがよくあります (Java で実装されている場合)。ただし、それらは異なる意図を持っているため、異なる名前を付けるのが賢明です。多くの場合、小さなライブラリは 1 つのパッケージに収まります。ただし、それらは同じではありません。
パッケージは名前空間です。「Util」クラスは数え切れないほどありますが、完全修飾名がパッケージ + クラス名であるため、一意に識別できます。
ライブラリは、特徴/機能を提供するために同意するクラスのセットです。
Java の世界では、論理的にライブラリはクラスのセットであり、通常はいくつかの共通分母パッケージ名 (例: org.apache.commons.ioなど) がパッケージ化され、 JAR ファイルとして配布されます。ライブラリは複数の JAR で構成される場合があり、フレームワーク、ツールキット、プラットフォームなどと呼ばれることがよくあります。
もちろん、共通のライブラリ定義もここに適用されます。
Java パッケージは、名前空間フォルダー編成の形式であり、完全修飾名の一部です。はい、実際には、名前のないパッケージであるデフォルトのパッケージを除いて、クラスはパッケージ+単純なクラス名で識別されます。パッケージスコープ、インポートなどの背後にあるロジックもありますが、この質問には多すぎます。
これは、Java ライブラリ、アーティファクト、またはそれらに名前を付けたものの最大のリポジトリです: Maven リポジトリ。
パッケージとライブラリは異なる概念です。
C/C++ のライブラリは、関連する関数/プロシージャのコレクションです。ライブラリには、文字列操作関数が含まれています。ライブラリには、正規表現などを処理する関数が含まれています...
Java のパッケージは、オブジェクト指向の設計原則をサポートするように設計されました (C は OO が登場する前に登場しました)。Javaのパッケージは、個々のクラス/モジュールについて推論するのと同じ方法で一緒に推論できるはずの、関連するクラスの論理的なコレクションです。