java私有的构造函数_Java 私有构造函数的使用
被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 私有构造函数的使用相关推荐
- java泛型类的构造函数_Java泛型构造函数
推荐关注公众号:锅外的大佬 每日推送国外优秀的技术翻译文章,励志帮助国内的开发者更好地成长! 1.概述 我们之前讨论过Java Generics的基础知识.在本文中,我们将了解Java中的通用构造函数 ...
- java默认参数构造函数_Java的构造函数与默认构造函数(深入版)
前言 我们知道在创建对象的时候,一般会通过构造函数来进行初始化.在Java的继承(深入版)有介绍到类加载过程中的验证阶段,会检查这个类的父类数据,但为什么要怎么做?构造函数在类初始化和实例化的过程中发 ...
- java构造函数_JAVA的构造函数是怎么写的。万分感谢。路过的请不要嘲笑%_%
展开全部 JAVA的构造函数是:SetLocal EnableDelayedExpansion set classpath=. for %%c in (lib\*.jar) do set classp ...
- java中什么是构造函数_java中构造函数是什么
构造函数是面向对象中的一员,构造函数可以叫做构造器,它的函数名与类名相同,不用定义返回值类型,也没有具体的返回值. 构造函数是在构建创造时对象时调用函数,作用是可以给对象进行初始化,创建对象都必须要通 ...
- java构造方法可以是私有的吗_Java中的构造函数可以私有吗?
小编典典 是的,构造函数可以是私有的.有不同的用途.一种这样的用法是用于单例设计反模式,我建议你不要使用它.另一个更合理的用法是委派构造函数.你可以让一个构造函数接受很多不同的选项,而这些选项实际上是 ...
- Java构造函数可以私有,我们可以在Java中使用私有的构造函数吗?
甲构造用于创建时初始化对象.从语法上讲,它类似于一种方法.区别在于,构造函数的名称与其类相同,并且没有返回类型. 无需显式调用构造函数,这些构造函数会在实例化时自动调用. 构造函数允许的访问说明符/修 ...
- java构造函数_Java构造函数
java构造函数 Constructor in java is used to create the instance of the class. Constructors are almost si ...
- C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序
https://www.cnblogs.com/ArtofDesign/p/3603986.html 默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字 ...
- JavaScript中的私有函数;Javascript构造函数的私有方法中访问其属性和公有方法
私有函数 构造函数中在定义一个function的时候,在内部只要不以this打头,就是一个俗称的函数体内的局部变量或局部function(js中function即对象)就是私有的. function ...
- 拷贝构造函数和赋值构造函数声明为私有的作用
转贴地址:http://blog.csdn.net/winer632/archive/2009/01/12/3762292.aspx 每个类只有一个赋值函数. 由于并非所有的对象都会使用拷贝构造函数和 ...
最新文章
- Ubuntu建立(apache+php+mysql)+phpmyadmin
- PMP知识点(五、成本管理)
- Java敌人跟地图的碰撞_(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分...
- MySQL连接查询—笛卡尔乘积
- Eclipse Collections随Java版本的演变
- 团队行为心理学读书笔记(1)
- CSDN博客不能正常发布的问题
- 库克斯坦福大学毕业演讲批评硅谷现状:我们有责任改变方向
- linux之chsh命令
- Android基础教程(四)之------获取手机联系人信息
- css匹配,提高css效率
- AD命令获取计算机、用户相关信息
- 【Django 2021年最新版教程3】新建一个WebApp项目并运行
- CAD中把样条曲线改成多线段
- UnityEditor代码分享导出材质贴图和Mesh本体
- 【详细】Python实现病毒仿真器
- TS学习(九) :TS中的泛型
- 多益网络2013校园招聘第二轮笔试题目
- C# Action 使用
- 光学字符识别(OCR,Optical Character Recognition)
热门文章
- 【回归预测】基于matlab Logistic混沌映射改进的麻雀搜索算法优化BP神经网络回归预测【含Matlab源码 1552期】
- 【手写字母识别】基于matlab GUI BP网络手写体大写字母识别【含Matlab源码 183期】
- .21f## c语言,C++核心准则编译边学-F.21 如果需要返回多个输出值,最好返回结构......
- java线程池的好处_Java 线程池的使用好处
- php 时分秒转时分_php 时分秒转为秒,秒转化为天时分秒
- PackagesNotFoundError: The following packages are not available from current channels: - python=3
- Java关流对流对象有什么影响_Java面试题全集(1.4)
- 推导pca的降维损失_这应该是最全的PCA原理总结了(上)
- 各种排序算法总结和比较
- Centos Linux 下Pycharm 安装