安全黑客
当前位置:安全黑客文章资讯编程技术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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • 甲骨文的Java序器安全管理器旁路远程执行代码漏洞
  • 甲骨文的Java ManagedObjectManagerFactory安全管理器旁路远程代码执行Vulnerabillity
  • 甲骨文的Java AWT内存损坏远程代码执行漏洞
  • 甲骨文的Java CMMImageLayout内存腐败远程代码执行漏洞
  • 甲骨文的Java ByteComponentRaster缓冲区溢出远程执行代码漏洞
  • 甲骨文的Java AWT内存损坏远程代码执行漏洞
  • 甲骨文的Java IntegerComponentRaster缓冲区溢出远程执行代码漏洞
  • 甲骨文的Java ShortComponentRaster缓冲区溢出远程执行代码漏洞
  • Oracle的Java cmmColorConvert的远程代码执行漏洞
  • 甲骨文的Java运行时环境AWT mediaLib的远程代码执行漏洞
  • 甲骨文Java图像ColorConvert远程代码执行漏洞
  • 甲骨文Java密钥库安全管理器旁路远程代码执行漏洞
  • 本文地址: 与您的QQ/BBS好友分享!

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

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .