※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

こんにちは。こんぶです。
今日は、「パッケージの利用」について学んでいきましょう!
私の自己紹介等は、こちらからどうぞ。
また、Javaの学習を最初から進めていきたい方は、Java-1から見てみてくださいね。
パッケージの利用
クラスの数が増えすぎると管理が大変になるため、グループ分けして管理することができます。
具体的には、各クラスをパッケージと呼ばれるグループに所属させて分類します。
クラスのソースコードの先頭にpackage文を記述することにより、そのクラスをパッケージに所属させることができます。
package文は「package 所属させたいパッケージ名;」のように記述します。パッケージ名は、基本的にアルファベットは小文字にし、ドットで区切ることもできます。
パッケージには、階層関係等はありません。現場では「親パッケージ」「子パッケージ」と表現されることもあるようですが、Javaのルールとしては階層関係は無いということを理解しておきましょう。
別のパッケージに所属しているクラスを利用する
別のパッケージに所属しているクラスを利用するには、所属パッケージ名を添えたクラス名を指定する必要があります。
パッケージ名を頭に添えた完全なクラス名のことを「完全限定クラス名」や「完全修飾クラス名」、完全修飾クラス名の英語を略した「FQCN」ともいいます。
完全限定クラス名(FQCN)は「パッケージ名.クラス名」のように記述します。
例えば「animal.mammal」というパッケージに所属する「Cat」というクラスの「eat」メソッドを呼び出す場合は、「animal.mammal.Cat.eat();」のようになります。
完全限定クラス名を省略
完全限定クラス名(FQCN)を2か所以上に使用する場合は、毎回記述するのが大変なので「import文」を使用することもできます。
import文はソースコードの先頭かつパッケージ文より後に「import パッケージ名.クラス名;」のように記述します。2つのクラスをインポートしたい場合は、2つのimport文をそれぞれ1行ずつ記述することになります。
もちろんimport文を使用した状態で完全限定クラス名(FQCN)を指定しても大丈夫です。
例えば「animal.mammal」というパッケージに所属する「Cat」というクラスをimport文を使用してインポートする場合は、ソースコードの先頭かつパッケージ文より後に「import animal.mammal.Cat;」と記述します。そして、「eat」メソッドを使用する場所では、「Cat.eat();」のように記述することになります。
また、あるパッケージ内の全てのクラスをインポートしたい場合は「*」を使用することで1行の記載にすることができます。例えば、「animal.mammal」というパッケージに所属する全てのクラスをインポートしたい場合は「import animal.mammal.*;」と記述します。
デフォルトパッケージ
どのパッケージにも所属していない状態を「無名パッケージに属している」「デフォルトパッケージに属している」ともいいます。
デフォルトパッケージというのは、どのパッケージにも所属していない状態ですので、import文でインポートすることはできません。
今回のまとめ
★クラスのソースコードの先頭にpackage文「package 所属させたいパッケージ名;」を記述することにより、そのクラスをパッケージに所属させることができる(パッケージ名は、基本的にアルファベットは小文字、ドット使用可能)
★パッケージには、階層関係等はない
★別のパッケージに所属しているクラスを利用するには、完全限定クラス名(FQCN)を指定する
★完全限定クラス名(FQCN)は「パッケージ名.クラス名」のように記述する
★完全限定クラス名(FQCN)を2か所以上に使用する場合は、「import文」を使用すると手間を削減できる
★import文はソースコードの先頭かつパッケージ文より後に「import パッケージ名.クラス名;」のように記述する
★デフォルトパッケージは、import文でインポートできない
・完全限定クラス名(完全修飾クラス名、FQCN):パッケージ名を頭に添えた完全なクラス名のこと
・デフォルトパッケージ(無名パッケージ):どのパッケージにも所属していない状態
次回は、「パッケージに所属したクラス」について説明していこうと思います。
今回の内容のチャレンジ問題はこちらです→チャレンジ問題【Java-32】~パッケージの利用~
次の内容に進む方はこちらです→【Java-33】パッケージに所属したクラス
それでは、こんぶはじゃ~
コメント