程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Effective Java (4) 通過私有構造器強化不可實例化的能力

Effective Java (4) 通過私有構造器強化不可實例化的能力

編輯:關於JAVA

一、背景

對於有些工具類如java.lang.Math、java.util.Arrays等,它們只包含靜態方法和靜態域字段,對於這樣的類實例化沒有什麼任何意義。但在實際使用中,如果不加任何特殊處理,這樣的類還是可以像其他類一樣可以被實例化。

二、處理辦法

將構造函數設置為private,這樣外部類無法實例化該類,同時在這個私有的構造函數中直接拋出異常,從而避免在類的內部實例化。

public class UtilityClass {  
    // 私有的構造器,內部實例化會拋出異常  
    private UtilityClass() {  
        throw new AssertionError();  
    }  
}

三、好處和弊端

這樣定義之後,類在內部和外部都不能被實例化了,否則會發生編譯錯誤或拋出異常,但副作用是這個類將不能被子類化了。

作者:csdn博客 zdp072

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved