スポンサーリンク
スポンサーリンク

【Java】ライブラリの作り方と考え方が一発でわかるプログラム例

ライブラリ化の考え方

無駄に長いプログラム

まず以下のプログラムをざっとみてください。

簡単に解説すると、3つの人物に関するクラスを用意し、メインクラス側で情報を表示しています。

(Main.java)

結果

どうでしょうか。

やっていることは至極単純ですが、こういったプログラムにしてしまうと無駄に難解になってしまいます。

ではどうすればいいのでしょうか。

汎用化する

解決策はタイトル通り、「汎用化する」です。

これがライブラリの考え方で一番大事な考え方です。しっかり理解しておく必要があります。

例えばこの例でいうと、3の人物に関する情報は「名前・年齢・身長・趣味」の4つが必ず設定されていることがわかります。

ということは、この部分はすべてに共通する汎用的な要素であることが言えます。

汎用クラス

では、実際に汎用クラスを作っていきましょう。

(Main.java)

これが汎用クラスとなります。

このように、4つの情報を保持するための変数を宣言し、コンストラクタで設定するようにしました。

この汎用クラスを用いて、先ほど作っておいた3つのクラスを改造してみます。

汎用クラスを継承する

(Main.java)

どうでしょうか。これだけでもだいぶスッキリしたと思います。

おんなじ変数を何回も宣言するという無駄な作業がなくなるというのは、プログラムの可読性(読みやすさ)を上げる上でとても重要なことです。

メインクラス内の改造

では最後にメインクラス内のプログラムを改造していきます。

(Main.java)

どうでしょう。これなら何人増やそうが、ほとんどプログラムの量は増えません。

先ほどの長ったらしいプログラムと比べて、かなりスッキリして、可読性も上がりました。

こういった汎用的な処理と具体的な処理(個人特有の情報など)を切り離した構造を取ることによって、プログラムの可読性やメンテナンス性を上げられるので、ライブラリという考え方はプログラミングにおいて非常に重要な要素です。

ライブラリを作成する(.jarファイルの作成)

では、先ほど作成した汎用クラスをライブラリ化する方法を紹介します。

Javaにおけるライブラリ化は、「.jar」ファイルを作成するということになります。

なので、ここでは「.jar」ファイルの作成する方法を紹介するということになります。

まず、先ほど作成した「Person」クラスを別のファイル「Person.java」というファイルに移します。

(Person.java)

(Main.java)

このようにしたら、いよいよ「.jar」ファイルを作成していきます。

jarコマンドで作成する

「.jar」ファイルは「jar」コマンドで作成します。

ウィンドウズの方はコマンドプロンプトを、MacやLinuxの方はターミナルを開いてください。

そして「Main.java」や「Person.java」などのJavaファイルがあるフォルダ内で以下のコマンドを打ちます。

「Person.jar」というのは任意の名前で、ここで設定した名前がライブラリ(jarファイル)の名前になります。

次に、ライブラリに入れるクラスを指定します。

今回は「Person」クラスを汎用クラスとして作成したので、「Person.class」というファイルを選択します。

.jarファイルを用いてコンパイル・実行

最後にライブラリを用いたコンパイル・実行の方法を紹介します。

まず、コンパイルはこのように打ちます。

「-cp」の後に、ライブラリ名を指定します。なので、先ほど作成した「Person.jar」を指定します。

あとはいつも通りメインクラスの指定をします。

 

次に、実行の方法です。

コマンドプロンプトの場合(Windows)

ターミナルの場合(Mac・Linux)

ここでの違いは「;(セミコロン)」か「:(コロン)」かの違いだけです。

まとめ

Javaで使用できる標準ライブラリに関しても、汎用的な処理がまとめられたものです。

これらの標準ライブラリがなかったら、我々が作るJavaのプログラムはえらく長いものになってしまいます。

とはいえ、標準ライブラリを使う中でまた汎用的な処理が生まれることがあるので、こういった所で頭を働かせて、以下に効率的でわかりやすいプログラムを作るかが、ある意味プログラマの腕が試されるところだと感じます。

コメント