Java
パッケージ管理

【Java】管理のためのパッケージ

Javaでプログラミングしていくとき、作成されるクラスをたくさん作成してしまうと、それをきちんと整理しておかないと、管理が難しくなっていきます。また、共同でクラスを作成していた場合、他の人が作ったクラスを利用するとき、自分が作ったクラスと区別する必要があります。それらを行うためのパッケージについて説明します。


パッケージとクラス

Javaではクラスを集めてパッケージと呼ばれるクラスの集まりを作ることができます。クラスを部品と考えると、関連の強い部品を1つに集めたものがパッケージということができます。

例えば、科学計算などを行うプログラムを作成する場合、複雑な計算式をプログラム中に1から記述する必要はなく、科学計算パッケージを入手しそれを利用することで簡単に科学計算を行うことができます。

パッケージは他のパッケージと区別できるように、それぞれ固有の名前が付けられています。固有の名前付けがきちんと守られるように、Javaではインターネットのドメインを逆順にしたものをパッケージの先頭につけることを推奨しています。例えば、ドメイン名が「blogramming.co.jp」としたとき、パッケージ名の先頭は「jp.co.blogramming」となります。


パッケージ名を使ったパッケージ利用

Javaは必要なパッケージを必要な時に必要なだけ取り組む仕組みになっています。そのため、プログラム中にimportを用いて、どのパッケージを取り込むかを明記する必要があります。その1つの方法がパッケージ名を指定したパッケージの利用です。

以下に示すプログラムは、java.textパッケージのDecimalFormatクラスを使用したものです。

パッケージ名の後に、「.」を付けクラス名を指定することで、java.textパッケージに含まれているDecimalFormatクラスのインスタンスを生成しています。


PackageTest1.java

class PackageTest1{

public static void main(String[] args){
int x=1234567;

java.text.DecimalFormat df=new java.text.DecimalFormat(",###");

System.out.println("x="+x);
System.out.println("x="+df.format(x));
}
}



importによるパッケージ利用

パッケージ名を記述することで、パッケージに含まれているクラスを使用することができるようになりましたが、プログラムの記述がとても長くなってしまっています。

ここでimportを使います。importを用いることで、パッケージの取り込みができるのでパッケージ名を記述することなく、手元にあるクラスとしてクラス名だけで使用することが可能になります。ただし、importは物理的にパッケージ内のクラスをコピーしたり、プログラムリストの中に挿入したりするわけではなく論理的に取り込んでいるので、一度importしてしまえば後はしなくてよいのではなく、プログラムの作成中は常にimportを記述しておかなかればなりません。


PackageTest2.java

import java.text.DecimalFormat;

class PackageTest2{
public static void main(String[] args){
int x=1234567;

DecimalFormat df=new DecimalFormat(",###");

System.out.println("x="+x);
System.out.println("x="+df.format(x));
}
}