Javaのクラスは「パッケージ」という方法によって分類されています。
例えばStringというクラスは、「java/lang/String.java」というパスのファイルになり、パッケージは「java.lang」になります。パッケージ名の階層は「.(ピリオド)」で区切られます。
各クラスは、このようにフォルダによって分類されています。そして、クラスのコードである拡張子.javaのファイルの冒頭には、以下のようにパッケージ名が記されています。
package sample.hoge;
public class Sample {
}
自分で作ったクラスは、独自のパッケージに収めます。このパッケージ名は、他人と被らないようにすることが求められます。
以下、自作クラスのパッケージの命名方法を示します。
Javaに元々備わっているパッケージとクラスは、「API 仕様」を見ることで確認できます。
Java 8(日本語版) https://docs.oracle.com/javase/jp/8/docs/api/ Java 7(日本語版) https://docs.oracle.com/javase/jp/7/api/
Javaでは、別のパッケージのクラスを使う際には、クラスの前にパッケージ名を書かなければなりません。
java.io.File f = new java.io.File("./");
しかし実際は、このようにして書かれることはほとんどありません。Javaでは、このパッケージ名を省略するためのルールが3つ用意されています。
1つ目のルールは、プログラムを書き込むクラスと同じパッケージの場合は省略できるというものです。これは、わざわざパッケージ名を書かなくても、同じパッケージ内にあるから分かるからです。
2つ目のルールは、java.langパッケージ内のクラスは、パッケージ名を省略できるというものです。java.langには、Javaの基本的なクラスが収められているからです。
3つ目のルールは「インポート」です。クラスの初めの方に「import」と書くことで、長いパッケージ名を、そのクラス内で省略して使えるようになります。
最新の「Eclipse」では、コード中にクラスを書くと、自動でインポートを行います。
自動でインポートされない場合は、マウスカーソルを重ねるとメニューが表示されます。このメニューを選択することで、インポートをしたり、新しいクラスを作ったりできます。
package sample; import java.io.Console; import java.io.File; public class Test { public static void main(String[] args) { File f = new File("./"); Console cons = System.console(); } }