kanizaのブログ

コンピュータ、ソフトウェア、映画、音楽関連や家族のことなど、思いついたことを書きます。

Javaの勉強(その2)

昨日の続き。

Java でわかりにくかったものとして他に思い出すのは、Arrays とか Collections といったクラス。昨日のは Array クラス。今回のは複数形の Arrays と、Collections だ。

Arrays とか Collections といったクラスは、そのクラスのインスタンスを作らずに static メソッドを利用するためのユーテリティクラスだ。「クラスの機能はインスタンスを作って利用する」と思い込んでいた僕には、インスタンスを作らないという点がわかりにくかった。

Arrays には配列の検索やソートなど、Collections にはコレクションのソートなどメソッドが用意されていて便利に使える。特定のオブジェクトが持っている機能ではなく、インスタンスがなくてもいつでもどこでも使えるところが嬉しい。

他に似たようなクラスとして、Swing 関連の SwingUtilities や JavaBeans 関連の Beans などがある。こういったユーティリティクラスにはよく使うアルゴリズムの安定した実装が提供されている。積極的に活用して、自分でメンテナンスしなくちゃいけないコード量を減らすと良い。

Arrays とか Collections などが気に入った人は、ApacheJakarta Commons にある Lang や Collections といったライブラリも見てみるのがおすすめ。

インスタンスがなくても使える static メソッド(クラスメソッド)は、引数の情報のみから完全な結果を出せるようなメソッドを定義するのに適している。自分で作るクラスにあまり多用すると、クラスどうしの静的な結びつきが強くなってシステムの柔軟性が損なわれてしまうことがあるから注意しよう。