パッケージの宣言
package宣言の書式
package パッケージ名;
パッケージ名は小文字で書くことが推奨されている。
パッケージ宣言は一つのソースファイルに一つ。2つ以上宣言することはできない。
package hoge; package hoge2; //エラー ...........
パッケージ宣言はソースファイルの一番上で宣言する。
package hoge; //OK import java.util.Scanner;
例えば、import文のあとに書くとエラーになる。
import java.util.Scanner; package hoge; //エラー
パッケージ宣言がないと、そのソースファイルは無名パッケージに属する。
つまり、パッケージ宣言がなくてもエラーにならない。
でも、次で述べるように、できるだけパッケージに所属させた方が良い。
クラス名の重複を回避するためにも、クラスはパッケージに所属させることが推奨されている。
package hoge; public class Test { ..... }
package hoge2; public class Test { ..... }
パッケージhogeに属するクラスTest、パッケージhoge2に属するクラスTestと同名のクラスをパッケージにより区別することができる。
パッケージ名はそのソースファイルが所属するディレクトリの名前にするのが基本的。
ディレクトリaの中にソースファイルを作る場合は、
package a;
というパッケージ宣言をソースファイルの冒頭でする。
ディレクトリaのサブディレクトリbの中にソースファイルを作る場合は、
package a.b;
実際にパッケージを作って呼び出してみる。
1 import message.Hello; //パッケージmessageのクラスhelloを単純名で利用するため単一インポート宣言 2 3 class Main { 4 5 public static void main(String[] args) { 6 Hello hello = new Hello(); 7 hello.print(); 8 } 9 10 }
1 package message; //ディレクトリmessageに所属するのでパッケージ名もmessageに 2 3 public class Hello { 4 //フィールド 5 6 7 //コンストラクタ 8 9 10 //メソッド 11 public void print() { 12 System.out.println("Hello World"); 13 } 14 15 }
実行
$ javac message/Hello.java $ javac Main.java $ java Main Hello World $