パッケージとは何か?
Javaというより、オブジェクト指向言語の利点は
- 関数や変数をクラスのメンバーとすることで隠蔽化できる
ということです。これは、名前衝突が起きない(グループで開発していて、関数や変数の名前が同じにならない)というメリットがあります。
しかし、クラス名はどうでしょう?同じクラス名をつけてしまう可能性は大いにありますね。
この問題を解決するのが、パッケージです。そのクラスがどこに属しているのかを、ピリオド「.」で区切った名前(パッケージ名)で定義できます。パッケージ名は、所属する組織のURLやURIに準拠することが多いです。
例) org.ochilab
Javaでは下記のように宣言します。
package org.ochilab;
public class Test {
・・・・・
}
このように書いておくと、このTestクラスは、org.ochilab というパッケージに属してるという意味になります。
注意:パッケージ構造=ディレクトリ構造
Javaの場合、これだけでは終わりません。パッケージの構造は、ディレクトリ(フォルダ)の構造と一致します。ピリオドで区切られた単位でディレクトリになります。例えば、上記の場合、Testクラスを記述している Test.javaは
- orgというフォルダの中のochilabというフォルダの中に保存されなければなりません
Eclipseだと、その整合性があうように自動修正したり、エラーを指摘したりします。