ユティリティークラス

utility-class.png

いうなれば、便利クラス。
たとえば、

  • java.lang.Math
  • java.util.Arrays

のように、基本データ型や、配列に対する関連したメソッドをまとめるのに使用するようなクラスのこと。
他にも、

  • java.util.Collections

のように、特定のインタフェースを実装したオブジェクトに対するファクトリーメソッドを含むstaticメソッドをまとめるのにも使用できる。

ユーティリティクラスの使い方

たとえば、java.lang.Mathだったらこんなふうに使う

int num = -10;
int abs_num = Math.abs(num);

インスタンスを作ることなく、常にクラス名.関数()という風に書いて使うのだ。

ユーティリティークラスの作り方

このようなユティリティークラスインスタンス化できるようには設計されていません
つまり、インスタンスには意味がありません。

インスタンス化できないようにするには?

  • privateな空コンストラクタを作ること
package singleton;
//インスタンス化できないユティリティークラス
public class UtilityClass {
    //インスタンス化できないようにするためにデフォルトコンストラクタを抑制する
    private UtilityClass(){}
 
}

これにより
  • サブクラスの作成禁止!

という副作用も得ることができる。

Bibliography

サポートサイト Wikidot.com