項目4.privateのコンストラクタでインスタンス化不可能を強制する
書かれている内容
- ユーティリティクラスは、インスタンス化されるようには設計されていない(インスタンスには意味がない)
- 明示的なコンストラクタがなければ、コンパイラはデフォルトコンストラクタを提供する
- ユーザにとってこのコンストラクタは、他のコンストラクタと区別がつかない
- 抽象クラスもうまくいかない。サブクラスを作成できるし、サブクラスをインスタンス化できる。継承するために設計されていると誤解される
- privateのコンストラクタでインスタンス化できないようになる
- privateのコンストラクタでAssertionErrorをthrowすることで、クラス内から誤って呼び出された場合の保険となる