Java入門|クラスライブラリを使いこなす方法

クラスライブラリを使いこなせると、Javaのプログラムはもっと自由に、もっと実践的になる

ここまでの学習で、Stringクラス、Integerクラス、Mathクラス、StringBufferクラスなど、Javaにあらかじめ用意されている便利なクラスに少しずつ触れてきました。これらはどれも、プログラムを作るときの強力な部品です。自分ですべての機能を一から作らなくても、すでに用意されたクラスを正しく使うことで、ぐっと実用的なプログラムを組み立てられるようになります。

Javaの標準クラスライブラリには、今回学んできたもの以外にも、本当にたくさんのクラスが入っています。文字列の処理、数値の計算、日付や時刻の扱い、ファイル操作、コレクションの管理など、幅広い機能が整理された形でそろっています。こうしたクラスを上手に活用できるようになると、複雑に見える処理でも、意外なほどすっきり書けることがあります。

ただし、クラスライブラリは便利な反面、種類が多いため、すべてを暗記しようとすると大変です。大切なのは、全部を覚えることではなく、必要なときに調べて使えることです。そのために役立つのが、クラスライブラリのリファレンスです。ここでは、クラスライブラリを使いこなすとはどういうことか、どのように学んでいけばよいのかを、やさしく整理しながら見ていきます。

クラスライブラリを使いこなすとはどういうことか

クラスライブラリを使いこなすとは、たくさんのクラス名を丸暗記することではありません。必要な場面で、どんなクラスが役立つかを見つけて、その使い方を理解し、プログラムに取り入れられることです。

たとえば、次のような流れで考えられるようになると、クラスライブラリをうまく使えていると言えます。

考えること具体例
どんな処理をしたいか文字列を比較したい
それに合うクラスは何かStringクラス
どのメソッドを使うかequals、indexOf、substring など
どう書けばよいかリファレンスで確認して使う

つまり、クラスライブラリを使いこなす力とは、部品を覚える力というより、必要な部品を見つけて使う力です。

Javaには多くの便利なクラスが用意されている

これまで学んだクラスは、Javaの標準クラスライブラリのほんの一部です。実際には、さらに多くのクラスが用意されています。

たとえば、次のような分野で便利なクラスがあります。

分野代表的な機能の例
文字列処理文字列の比較、検索、切り出し
数値処理変換、比較、乱数、数学関数
入出力キーボード入力、ファイルの読み書き
日付と時刻今日の日付、時刻の取得、計算
データ管理複数データの保存や整理
例外処理エラー発生時の安全な制御

このように、Javaのクラスライブラリは、プログラムづくりのための大きな道具箱のようなものです。知っている道具が増えるほど、作れるプログラムの幅も広がっていきます。

これまで学んだクラスもクラスライブラリの一部

ここまで学んできた内容を振り返ると、すでにいくつものクラスライブラリのクラスを使っています。

クラス名主な役割
String文字列を扱う
StringBuffer変更できる文字列を扱う
Integer文字列を整数に変換する
Math数値計算を行う
BufferedReader入力を読み込む
InputStreamReader入力を文字として扱いやすくする
System画面出力などに使う

こうして見ると、私たちはすでにかなり多くのクラスライブラリを使ってきたことが分かります。つまり、クラスライブラリはこれから急に出てくる新しいものではなく、これまでの学習の中にもずっと登場していた身近な存在なのです。

クラスライブラリを使うと何がよいのか

クラスライブラリを使う大きな利点は、複雑な処理を短く、分かりやすく、安全に書きやすくなることです。

自分ですべてを作る場合と、クラスライブラリを活用する場合を比べると、次のような違いがあります。

観点自分ですべて作る場合クラスライブラリを使う場合
開発の手間多くなりやすい少なくしやすい
コード量長くなりやすい短く整理しやすい
ミスの可能性増えやすい減らしやすい
学習の方向実装中心になる活用中心になる
実践性作る力はつく組み立てる力もつく

もちろん、自分で仕組みを作ってみる学習も大切です。ただ、実際の開発では、すでに用意された信頼できる機能を上手に使うことも同じくらい重要です。

すべてを暗記しなくてよい理由

クラスライブラリは種類が多いため、全部を暗記しようとすると大変です。ですが、実際にはその必要はありません。

大事なのは、次のような姿勢です。

大切なこと内容
存在を知るこういうクラスがあると知っておく
役割を知る何をするクラスか見当をつける
調べる習慣を持つ必要なときにリファレンスを見る
試して覚える小さなコードで動きを確かめる

つまり、クラスライブラリの学習は暗記勝負ではなく、調べながら使えるようになることが大切です。

リファレンスはクラスライブラリの辞書のようなもの

クラスライブラリを学ぶうえで欠かせないのが リファレンス です。リファレンスには、クラスの説明、メソッド名、引数、戻り値、使い方などが整理されています。

たとえば、こんなことを確認できます。

リファレンスで調べること内容
クラスの役割このクラスは何をするのか
メソッド名どんな機能があるのか
引数何を渡せばよいのか
戻り値何が返ってくるのか
利用方法どのように呼び出すのか

このように、リファレンスは分からないことを確認するための資料です。辞書を引くような感覚で使うと、とても役立ちます。

リファレンスを見るときのポイント

リファレンスは情報量が多いので、最初は少し見づらく感じることがあります。そんなときは、次の順番で見ると分かりやすいです。

見る順番注目する内容
1クラス名と概要
2使いたいメソッド名
3引数の型
4戻り値の型
5メソッドの説明

たとえば Mathクラスを調べるなら、まず max というメソッドがあるかを見て、そのあとで int型用か double型用かを確認する、という流れになります。

この見方に慣れると、新しいクラスに出会っても落ち着いて読み進められるようになります。

クラスライブラリの学習は実際に試すことが大切

クラスライブラリは、説明を読むだけでなく、実際に小さなプログラムで試してみることで理解しやすくなります。

たとえば、Stringクラスの substring を見つけたら、短い文字列で本当に切り出せるかを試してみる。Math.random を見つけたら、何回か表示して値の範囲を確認してみる。こうした積み重ねが、使いこなす力につながっていきます。

ここでは、クラスライブラリを組み合わせて使うシンプルな例を見てみましょう。

import java.io.*;

class Main {
    public static void main(String[] args) throws IOException {
        // キーボード入力の準備をする
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));

        // 数字を入力してもらう
        System.out.println("好きな整数を入力してください。");
        String str = br.readLine();

        // 文字列を整数に変換する
        int num = Integer.parseInt(str);

        // 絶対値と2乗を計算する
        int absNum = Math.abs(num);
        double powNum = Math.pow(num, 2);

        // 結果を表示する
        System.out.println("絶対値は " + absNum + " です。");
        System.out.println("2乗すると " + powNum + " です。");
    }
}

この例では、入力処理に BufferedReader と InputStreamReader、文字列から整数への変換に Integer、数値計算に Math を使っています。つまり、1つのプログラムの中で複数のクラスライブラリを組み合わせているわけです。

複数のクラスを組み合わせる感覚が大切

実際のJavaプログラムでは、1つのクラスだけで完結することはあまり多くありません。いくつかのクラスを組み合わせて、ひとつの処理を作っていくことが普通です。

先ほどの例を表で整理すると、こうなります。

クラス名使った理由
BufferedReader入力を受け取るため
InputStreamReader入力を文字として扱うため
Integer文字列を整数に変換するため
Math絶対値や2乗を計算するため
System結果を表示するため

このように、クラスライブラリを使いこなすとは、1つのクラスを深く知るだけでなく、複数のクラスを目的に合わせて組み合わせることでもあります。

インポートが必要になることもある

クラスライブラリのクラスを使うときには、場合によって import の記述が必要です。これは、そのクラスがどこに属しているかを示して、使えるようにするための準備です。

たとえば、入力処理で使う BufferedReader や InputStreamReader を利用するときには、次のような記述をすることがあります。

import java.io.*;

一方で、String や Math のように、すぐ使えるクラスもあります。

この違いを厳密に全部覚える必要は、今の段階ではありません。まずは、必要に応じて import が必要になることがある、と理解しておけば十分です。

この図では、中央の プログラム作成 に向かって、String、Integer、Math、BufferedReader などのクラスが集まってくる形になっています。これにより、プログラムが1つの機能だけでできているのではなく、目的に応じた複数のクラスの組み合わせで成り立っていることが分かりやすくなります。

特に初心者のうちは、クラスライブラリを個別にバラバラで覚えようとしがちです。でも実際には、文字列を扱う、入力を受け取る、数値に変換する、計算するといった機能がつながって、1つのプログラムになります。

リファレンスを見ながら学ぶ習慣をつけよう

クラスライブラリの学習では、分からないことが出てきたときにリファレンスを見に行く習慣がとても大切です。最初は見慣れない英語や記号が多く感じることもありますが、必要なところだけを読むようにすると、少しずつ慣れていけます。

たとえば、こんな流れで使うとよいです。

学習の流れ内容
1やりたい処理を考える
2使えそうなクラスを探す
3リファレンスでメソッドを確認する
4小さなコードで試す
5本番のプログラムに組み込む

この流れが身につくと、新しいクラスに出会っても学習を進めやすくなります。

クラスライブラリを使いこなす力は実践力につながる

Javaの学習が進むほど、自分でクラスを設計する力も大切になりますが、それと同じくらい、既存のクラスライブラリを活用する力も重要になります。なぜなら、実際の開発では、すべてを自分で作るのではなく、すでにある便利な部品を組み合わせて作ることが多いからです。

クラスライブラリを使いこなせるようになると、

  • 短いコードで書ける
  • 読みやすいコードにしやすい
  • 高度な処理にも挑戦しやすい
  • 学べる内容が一気に広がる

という大きな変化が出てきます。

クラスライブラリは、Javaの世界を広げてくれるとても大切な存在です。知っているクラスが少しずつ増え、その使い方をリファレンスで確認しながら試せるようになると、Javaのプログラム作成がぐっと実践的で楽しいものになっていきます。