ほぷしぃ

Java言語入門 〜C言語を学んだ君へ〜

[第11回]パッケージ

[1] パッケージの階層構造

パッケージの階層構造とは

パッケージの中にさらにパッケージを作ることができます。
これをパッケージの階層構造といいます。
それによって、より整理されて分かりやすいプログラムが書けます。
もちろんそのように整理した場合、書き方は今までと少し変わります。

階層構造の書き方

階層構造のためパッケージが増え、書かなくてはならないパッケージも増えます。
今まではそのファイルがどこのパッケージに属するのかをファイルの最初に

package パッケージ名;

このよう宣言していましたが、パッケージが多いため、パッケージの大きい順で

package パッケージ名1.パッケージ名2.パッケージ名3.パッケージ名4;

というようになります。
また、同じように呼び出し方法もパッケージ名が1つではなく、「.」(ドット)によって沢山のパッケージを書き連ねる必要が生まれてきます。

[2] インポート

インポートとはC言語でいう#include<ヘッダファイル>に相当します。

インポートとは

インポートとは、「パッケージ名.」を省略してしまうものです。
プログラムによっては、同じ「パッケージ名.」が何度も出てきて、面倒です。
だからと言って書かないとエラーが出ます。
そんなときには、こんな1文加えてやると、すべてがうまくいきます。

import パッケージ名.クラス名;

これをファイルの最初の部分に書き加えます。
最初と言っても、パッケージの宣言の次の行がいいでしょう。
この行為「インポート」によって、ソースに「パッケージ名.」を書く手間が省けます。

複数のクラスを1文でインポート

パッケージ内にはクラスがいくつも入っているものです。
そのパッケージ内のクラスを全てインポートする場合、
先ほどの方法だととても手間がかかってしまいます。
そのため、パッケージ内のすべてのクラスをインポートする方法があります。

import パッケージ名.*;

上のように、クラス名の代わりに「*」(アスタリスク)をつけることで、それが可能になります。
何か検索するときにも「*」を使いました。ワイルドカードです。

[3] その他補足

今までimportなしのプログラムを書いてきました。
System.out.printlnなどはimportしていなくても使えました。
これは、よく使うパッケージはimportしなくても使えるようになっているのです。
これら以外にも様々な機能を持つとても便利なパッケージがあります。
それについては、第15回「クラスライブラリ」で少しだけ取り扱います。

C言語ではほとんどの関数などを#includeしていたのに、
Javaでは、必要最低限のものをimportする必要がなく便利になりました。

以上で第11回は終了です。



前のページへ ページのトップへ 第1問-問題へ