被private修饰的私有构造函数无法在其他类中调用,也就是该类无法在其他类中实例化。

这种情况常用的使用场景:1、单例模式;  2、防止实例化。

一、单例模式

单例模式是一种常用的设计模式,思想是单例对象的类必须保证只有一个实例存在。

如何实现呢?一个简单的单例模式如下:

public class Singleton {

private static Singleton instance;

private Singleton() {

System.out.println("Singleton的私有构造器");

}

public static Singleton getInstance() {

if (instance == null)

instance = new Singleton();

return instance;

}

}

单例模式类的特点:

1.  一个private static的自身类型的属性,保证实例的唯一性;

2.  私有构造器,防止随意实例化;

3.一个public static的getInstance()得到唯一实例的方法;

当需要一个类实例时,用一下语句:

Singleton single=Singleton.getInstance();

二、防止实例化

某种情况下,我们只需要把某个类(工具类)当成“函数”使用,即只需要用到里面的static方法完成某些功能。

这种情况下不需要获得实例,所以getInstance()方法可有可无。

三、利用反射机制可以打破私有构造器的限制

利用反射机制,修改私有构造器的访问权限,也可以获得实例。

java私有的构造函数_Java 私有构造函数的使用相关推荐

  1. java泛型类的构造函数_Java泛型构造函数

    推荐关注公众号:锅外的大佬 每日推送国外优秀的技术翻译文章,励志帮助国内的开发者更好地成长! 1.概述 我们之前讨论过Java Generics的基础知识.在本文中,我们将了解Java中的通用构造函数 ...

  2. java默认参数构造函数_Java的构造函数与默认构造函数(深入版)

    前言 我们知道在创建对象的时候,一般会通过构造函数来进行初始化.在Java的继承(深入版)有介绍到类加载过程中的验证阶段,会检查这个类的父类数据,但为什么要怎么做?构造函数在类初始化和实例化的过程中发 ...

  3. java构造函数_JAVA的构造函数是怎么写的。万分感谢。路过的请不要嘲笑%_%

    展开全部 JAVA的构造函数是:SetLocal EnableDelayedExpansion set classpath=. for %%c in (lib\*.jar) do set classp ...

  4. java中什么是构造函数_java中构造函数是什么

    构造函数是面向对象中的一员,构造函数可以叫做构造器,它的函数名与类名相同,不用定义返回值类型,也没有具体的返回值. 构造函数是在构建创造时对象时调用函数,作用是可以给对象进行初始化,创建对象都必须要通 ...

  5. java构造方法可以是私有的吗_Java中的构造函数可以私有吗?

    小编典典 是的,构造函数可以是私有的.有不同的用途.一种这样的用法是用于单例设计反模式,我建议你不要使用它.另一个更合理的用法是委派构造函数.你可以让一个构造函数接受很多不同的选项,而这些选项实际上是 ...

  6. Java构造函数可以私有,我们可以在Java中使用私有的构造函数吗?

    甲构造用于创建时初始化对象.从语法上讲,它类似于一种方法.区别在于,构造函数的名称与其类相同,并且没有返回类型. 无需显式调用构造函数,这些构造函数会在实例化时自动调用. 构造函数允许的访问说明符/修 ...

  7. java构造函数_Java构造函数

    java构造函数 Constructor in java is used to create the instance of the class. Constructors are almost si ...

  8. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    https://www.cnblogs.com/ArtofDesign/p/3603986.html 默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字 ...

  9. JavaScript中的私有函数;Javascript构造函数的私有方法中访问其属性和公有方法

    私有函数 构造函数中在定义一个function的时候,在内部只要不以this打头,就是一个俗称的函数体内的局部变量或局部function(js中function即对象)就是私有的. function ...

  10. 拷贝构造函数和赋值构造函数声明为私有的作用

    转贴地址:http://blog.csdn.net/winer632/archive/2009/01/12/3762292.aspx 每个类只有一个赋值函数. 由于并非所有的对象都会使用拷贝构造函数和 ...

最新文章

  1. Ubuntu建立(apache+php+mysql)+phpmyadmin
  2. PMP知识点(五、成本管理)
  3. Java敌人跟地图的碰撞_(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分...
  4. MySQL连接查询—笛卡尔乘积
  5. Eclipse Collections随Java版本的演变
  6. 团队行为心理学读书笔记(1)
  7. CSDN博客不能正常发布的问题
  8. 库克斯坦福大学毕业演讲批评硅谷现状:我们有责任改变方向
  9. linux之chsh命令
  10. Android基础教程(四)之------获取手机联系人信息
  11. css匹配,提高css效率
  12. AD命令获取计算机、用户相关信息
  13. 【Django 2021年最新版教程3】新建一个WebApp项目并运行
  14. CAD中把样条曲线改成多线段
  15. UnityEditor代码分享导出材质贴图和Mesh本体
  16. 【详细】Python实现病毒仿真器
  17. TS学习(九) :TS中的泛型
  18. 多益网络2013校园招聘第二轮笔试题目
  19. C# Action 使用
  20. 光学字符识别(OCR,Optical Character Recognition)

热门文章

  1. 【回归预测】基于matlab Logistic混沌映射改进的麻雀搜索算法优化BP神经网络回归预测【含Matlab源码 1552期】
  2. 【手写字母识别】基于matlab GUI BP网络手写体大写字母识别【含Matlab源码 183期】
  3. .21f## c语言,C++核心准则编译边学-F.21 如果需要返回多个输出值,最好返回结构......
  4. java线程池的好处_Java 线程池的使用好处
  5. php 时分秒转时分_php 时分秒转为秒,秒转化为天时分秒
  6. PackagesNotFoundError: The following packages are not available from current channels: - python=3
  7. Java关流对流对象有什么影响_Java面试题全集(1.4)
  8. 推导pca的降维损失_这应该是最全的PCA原理总结了(上)
  9. 各种排序算法总结和比较
  10. Centos Linux 下Pycharm 安装