クラスライブラリ

Javaにはクラスライブラリとは様々な機能を持ったプログラム(クラス)をまとめたクラスライブラリが用意されています。
文字列操作・ファイル入出力・GUIなど多肢におよび、その全容を理解することは到底できません。
それらは必要な時に見つけて使用することができれば構わないのですが、頻繁に使用するクラスはしっかりと覚えておく必要があります。
また、「こんな機能が欲しい」と思った時に標準クラスライブラリに含まれているかを調べられる事が求められます。

この章ではクラスライブラリを解説しながらJavaの知識を深めていくことを目標とします。

ライブラリの構成

Javaのクラスライブラリはjavaまたはjavaxパッケージなどに属しています。
その中で特に重要なパッケージはjava.lang, java.util, java.ioの3つです。
java.langはJavaで最も基本的なクラスライブラリであり、文字列クラスや例外に関するクラスが含まれます。
java.utilは様々なユーティリティクラスが含まれ、配列クラスやカレンダークラスを含みます。
java.ioは入出力関連のライブラリであり、ファイルクラスやファイル入出力クラスなどが含まれます。

import文

クラスライブラリを使う場合など、自分のパッケージ外のクラスを使用する場合、クラス名はフルパッケージを含む完全修飾名で記述しなければなりません。
例えば、java.util.Dateクラスのインスタンスを生成する場合は次のようになります。

    java.util.Date date = new java.util.Date();

これではコードが冗長となり読みにくいものとなってしまうでしょう。
しかし、import文を使うことでパッケージ外のクラスでも完全修飾名で記述する必要がなくなります。

import文は必ずpackage文とクラス宣言(インターフェイス宣言)の間に記述します。
取り込み(import)したいクラスを完全修飾名を用いて次のように書きます。

package hoge;

import java.util.Date;

public class Foo
{
    private Date date = new Date();
}

尚、import文の数に制限はありませんが、*(アスタリスク)を使って特定のパッケージをまとめてimportする事もできます。

package hoge;

import java.util.*;

public class Foo
{
    private Date date = new Date();
}

これでjava.utilパッケージの全てのクラスは完全修飾名無しで使用することができます。

しかし、原則として *による一括importは行わないようにします。
これはimport文でどのようなパッケージ外のクラスを使っているかを解りにくくする為であり、名前の衝突などの問題を未然に防ぐ為です。
現在はEclipseを使った開発が主流となりimport文のバグに悩まされる事は少なくなりましたが、極力は使わないようにするべきです。

JavaDoc

Javaではソースコードからドキュメントを生成する機能が標準で用意されてます。
この機能で生成されたドキュメントはJavaDocと呼ばれ、ソース上に記述されたドキュメントの元となるコメントは特にJavaDocコメントと呼ばれます。

Javaでのコメント記述方法は大きく2通りがありました。
1つは// を使う方法で、// から改行されるまでの文字列がコメントとなりました。
もう1つは/* と */ を使う方法で、/* と */ で囲まれた全ての文字列(改行を含む)がコメントとなりました。
この/* と */を使う方法に似ていますが、/** と */で囲まれたコメントがJavaDocコメントとなります。

    // 1行コメント
    int num = 10; // ここもコメント
    /* ここから
    num = num + 1;
    
    ここまでコメント */
    
    /** ここから
    num = num + 1;
    
    ここまでJavaDocコメント */
    /** 1行でもOK  */
}

JavaDocコメントはクラス概要(クラス宣言の直前)、変数の概要(変数の直前)、メソッドの概要(メソッドの直前)に記述されます。
特にメソッドのJavaDocコメントは重要であり、ほとんどの場合はJavaDocに出力してプロジェクトの青果物となります。

JavaDocタグ

メソッドのJavaDocなどでは@で始まるタグ宣言を行いJavaDocを標準的で読みやすいようにすることができます。
主なタグには、@param(パラメータの説明), @return(戻り値の説明)です。
タグの後ろには説明などを記述します。

    /**
     * 与えられた2つの整数で大きい値を取得する
     * @param a 比較する整数その1
     * @param b 比較する整数その1
     * @return a < b ならばb、そうでないならばa
     */
    public int max(int a, int b)
    {
        if(a < b)
        {
            return b;
        }
        return a;
    }
}

尚、通常はprivateメソッドにはJavaDocは不要です。
これはprivateメソッドはそのクラス内でしか使用されないことが明らかであり、ドキュメントとして外部公開する必要がないからです。

クラスライブラリのJavaDoc

標準クラスライブラリのJavaDocは公開されています。
日本語訳もありますので、常にJavaDocを確認できるようにしておく事が重要です。

オンラインで確認する場合は、http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/index.html(JDK1.4)となりますが、ダウンロードしてローカルに置いておく方が便利でしょう。