Javaでグラフィックスをやりたかったので、Swingを勉強しました。グラフィックスをやるのにクラスをインポートするのですが、実は今までよく分からないまま使っていました。これではいけないと思い、この機会にクラスライブラリとパッケージについて調べました。
クラスライブラリ、パッケージの理解度
過去に参考書や学校で「import java.○○.*;
と書くと、クラスを使えるようになります」と説明を受けました。その程度の理解しかありませんでした。そのため、どのようなことが起きていて、どうして使えるようになるのかよく分からなかったです。また、用語の説明がなく、何なのかよく分かりませんでした。よくよく振り返ると説明ではなく、対処療法的なことを言われていたんだと思います。
import文を説明するのに、ライブラリ、パッケージなどの説明が必要になると思います。説明の説明が発生するのは、ままある話だと思います。そこまで説明する余裕がないのか「import java.○○.*;
と書くと必要なクラスが使えます」の一言で終わるのだと思います。
クラスライブラリやパッケージで知ったこと
改めて学び直すと分かったことがありました。
- ライブラリ:パッケージをまとめたもの
- パッケージ:クラスファイルをグループにまとめたもの
- パッケージは、サブパッケージを持つものもある。
import java.○○.*;
では、サブパッケージはインポートされない。サブパッケージは、別途インポートする。- java.langパッケージの配下のクラスは、import文を書かなくても利用できる。
Javaには、標準クラスライブラリ(API)などと呼ばれるものがあります。それの使い方が書かれている文書をリファレンスと言ったり、API(API仕様書)と言ったり、ドキュメントと言ったりします。色々な言い方があるようです。ライブラリとパッケージ、サブパッケージの関係性が分かったので、リファレンスの見方も分かるようになりました。しかし、どのようなパッケージがあり、どのような機能があるのかまでは、調べきれていないので別途、調べます。
↑フレームで表示されていて見やすかったので、こちらのAPIのリンクを載せました。リファレンスは、自分が使っているJavaのバージョンのものを参考にしてください。
よく使うパッケージ
- java.lang
- Javaの基本的なクラス。Stringクラス、Mathクラスなど。
- java.io
- 入出力に関するクラス。Fileクラス、FileWriterクラス、FileReaderクラスなど。
- java.util
- java.net
- ネットワーク・アプリケーションを実装するためのクラス。URLクラス、Socketクラスなど。
- java.awt
- UIの作成、グラフィックスなどのクラス。Buttonクラス、Frameクラス、Colorクラスなど。
- javax.swing
- 軽量コンポーネントのセット。JButtonクラス、JFrameクラスなど。
まとめ
Javaの入門書でimport文やライブラリ、パッケージについて詳しく説明しているところを見たことがありません。そのため、「このパッケージの出所はどこなのか」や「どこから読み込まれているのか」といったことが疑問でした。あとは、リファレンスの見方がよく分かりませんでした。
今回、調べてみてライブラリの全体像が何となく分かりました。今後は、どのようなパッケージがあるのか目を通しておきたいです。