当前位置:七道奇文章资讯编程技术Java编程
日期:2012-04-05 13:25:00  来源:本站整理

Java学习笔记-04通过私有构造器强化不可实例化的本领[Java编程]

赞助商链接



  本文“Java学习笔记-04通过私有构造器强化不可实例化的本领[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  有一些工具类(utility class)不但愿被实例化,实例对它没有任何意义.但是,在贫乏显式构造器的情形下,编译器会自动供应一个公有的、无参的缺省构造器(default constructor),关于用户而言,这个构造器与其他的构造器没有任何辨别.在已发行的API中常常可以看到一些被无意识实例化的类.

  计划通过将类做成抽象类来强迫该类不可被实例化,这是行不通的.该类可以被子类化,并且该子类也可以被实例化.这样做乃至会误导用户,认为这种类是专门为了担当而计划的.然后,有一些简单的习惯用法可以确保类不可被实例化.我们只要让这个类包含私有构造器,它就不能被实例化了:

  [java]

  // Noninstantiable utility class

  public class UtilityClass {

  // Suppress default constructor for noninstantiability

  private UtilityClass() {

  throw new AssertionError();

  }

  }

  // Noninstantiable utility class

  public class UtilityClass {

  // Suppress default constructor for noninstantiability

  private UtilityClass() {

  throw new AssertionError();

  }

  }

  由于显式的构造器是私有的,所以不可以在该类的外部拜候它.这种习惯做法也有副作用,它使得一个类不能被子类化.全部的构造器都必须显式地或隐式地调用超类(superclass)构造器,在这种情形下,子类就没有可拜候的超类构造器可调用了.

  摘自 horsttnann的专栏


  以上是“Java学习笔记-04通过私有构造器强化不可实例化的本领[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2021 www.qdodge.com. All Rights Reserved .