站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题用私有构造函数强化不可实例化能力

用私有构造函数强化不可实例化能力

摘要: 用私有构造函数强化不可实例化能力
<table cellSpacing=0 cellPadding=0 border=0 class="zh114" align="right"> <tr> <td > </td> </tr> </table>
  有时候我们会编一些只含有静态域和静态方法的类.比如把操作原始类型和数组类型的方法集中起来:java.lang.Math,java.util.Arrays..或者把操作在特定接口之上的对象的方法集中起来,比如java.util.Collections.
  
  这个时候,不要试图创建一个abstract 类来使之不可实例化,因为abstract类可以被继承,最终被实例化.也不要试图不给出构造函数,因为即使这个类没有构造函数jvm也会给出一个默认的构造函数.
  
  所以,可以给出一个显示的私有构造函数,确保不可实例化.
  Example:
  // Noninstantiable utility class - page 12
  public class UtilityClass {
    // Suppress default constructor for noninstantiability
    private UtilityClass() {
      // This constructor will never be invoked
    }
    // ... // Remainder omitted
  }

<table width="96%"> <tr> <td background="http:///images/dian.gif" height="3"></td> </tr> </table>

↑返回目录
前一篇: 使用私有构造函数来强化单态性
后一篇: 避免创建重复对象