7

なぜJavaではライブラリではなくパッケージがあるのか​​ 疑問に思っていました。この問題について、私は友人たちと多くの議論をしました。そして、パッケージをライブラリと見なすことができると彼らは言っていました。C++ には既にライブラリの概念があったため、Packages という新しい名前を作成する必要があったのはなぜですか。

PS: パッケージ ライブラリを呼び出す場合、誰かを修正する価値は本当にありますか?

4

5 に答える 5

9

パッケージは、クラスを編成するために使用される Java 構造体です。彼らが提供します:

  • クラスを配置する名前空間
  • そのパッケージ内のクラスがフィールドを共有できるようにするアクセス レベル (パッケージ アクセス)

それでおしまい; この組織的な機能を実装者がどうするかは、実装者次第です。

ライブラリは、組織のもう 1 つの概念です。ただし、ライブラリの意図は、外部世界への明確に定義されたインターフェイスと、必要に応じて実行する内部実装を提供することです。

どちらも組織的なアイデアであり、ライブラリはパッケージで構成されていることがよくあります (Java で実装されている場合)。ただし、それらは異なる意図を持っているため、異なる名前を付けるのが賢明です。多くの場合、小さなライブラリは 1 つのパッケージに収まります。ただし、それらは同じではありません

于 2013-06-06T12:46:54.850 に答える
6

パッケージは名前空間です。「Util」クラスは数え切れないほどありますが、完全修飾名がパッケージ + クラス名であるため、一意に識別できます。

ライブラリは、特徴/機能を提供するために同意するクラスのセットです。

于 2013-06-06T12:44:55.633 に答える
3

Java の世界では、論理的にライブラリはクラスのセットであり、通常はいくつかの共通分母パッケージ名 (例: org.apache.commons.ioなど) がパッケージ化され、 JAR ファイルとして配布されます。ライブラリは複数の JAR で構成される場合があり、フレームワークツールキットプラットフォームなどと呼ばれることがよくあります。

もちろん、共通のライブラリ定義もここに適用されます。

Java パッケージは、名前空間フォルダー編成の形式であり、完全修飾名の一部です。はい、実際には、名前のないパッケージであるデフォルトのパッケージを除いて、クラスはパッケージ+単純なクラス名で識別されます。パッケージスコープ、インポートなどの背後にあるロジックもありますが、この質問には多すぎます。

これは、Java ライブラリ、アーティファクト、またはそれらに名前を付けたものの最大のリポジトリです: Maven リポジトリ

于 2013-06-06T13:22:42.773 に答える
2

パッケージとライブラリは異なる概念です。

C/C++ のライブラリは、関連する関数/プロシージャのコレクションです。ライブラリには、文字列操作関数が含まれています。ライブラリには、正規表現などを処理する関数が含まれています...

Java のパッケージは、オブジェクト指向の設計原則をサポートするように設計されました (C は OO が登場する前に登場しました)。Javaのパッケージは、個々のクラス/モジュールについて推論するのと同じ方法で一緒に推論できるはずの、関連するクラスの論理的なコレクションです。

于 2013-06-06T12:46:35.130 に答える