工具類(utility class)不但願被實例化,好比只包含靜態方法和靜態域的類。爲了這個目的,須要讓這個類包含一個私有構造器。工具
// 私有構造器示例 public class UtilityClass { // 爲該類不能被實例化、子類化添上註釋 private UtilityClass() { // 避免不當心在類的內部調用構造器 throw new AssertionError(); } }
其餘不可行方法和理由:spa
1. 將類寫成抽象類:可被子類化,甚至誤導用戶子去繼承這個類。code
2. 不寫構造方法:類不包含顯式的構造器時,編譯器會生成缺省的構造器。blog