1. 强调类的单例模式

public class Elvs {
//公有的静态域,来说明该类只能有一个实例(实例化一次后,后面都是同一个实例)
public static final Elvs INSTANCE=new Elvs();
private Elvs(){}//将构造函数定义为私有变量后,就不能在外部去调用构造函数实例化类了
public void sys() {
System.out.println("******");
}
}
public class Main {
public static void main(String[] args){
Elvs elvs=Elvs.INSTANCE;
elvs.sys();
}
}

注意上面的代码中,在其他的外部类中去实例化Elvs时,只能通过静态变量INSTANCE

public class Elvs {
private static final Elvs INSTANCE = new Elvs();
private Elvs() {}
public static Elvs getInstance() {return INSTANCE;}
public void sys() {
System.out.println("******");
}
}
public class Main {
public static void main(String[] args){
Elvs elvs=Elvs.getInstance();
elvs.sys();
}

根据静态方法来获取类的实例,也是只能获取一个实例,实现单例模式

2. 通过类的私有构造函数来强调类的不可实例化

例如在实际的应用中,工具类,或者整个工程的常量类,在类中只有静态常量,

这时我们可以在类中去定义一个私有的构造函数,然后在类中不去调用它,这样

在其他的类处就不能实例化这个常量类了。

参考:

https://blog.csdn.net/u013126379/article/details/57463285/

java私有构造函数的更多相关文章

  1. Java私有构造函数不能阻止继承

    下面是一个调用已经私有化的单列的函数的列子. 这里用了静态内部类,关键就是静态内部类可以访问外部类的私有构造函数. 这种算是变种继承吧.前提是可以在原来的单列类里添加代码. class Single ...

  2. Java 私有构造函数的使用

    被private修饰的私有构造函数无法在其他类中调用,也就是该类无法在其他类中实例化. 这种情况常用的使用场景:1.单例模式: 2.防止实例化. 一.单例模式 单例模式是一种常用的设计模式,思想是单例 ...

  3. Java私有构造器

    Java私有构造器:使用private关键字声明的构造函数.由于类的构造函数时私有的,所以此类不能被实例化,同时也不能被继承.<Effective Java>第三条:用私有构造器或者枚举强 ...

  4. C++私有构造函数

    一. 类的构造函数一般是public的,但是也可以是private的.构造函数为私有的类有这样的特点: <1>不能实例化:因为实例化时类外部无法访问其内部的私有的构造函数: <2&g ...

  5. 【译】3. Java反射——构造函数

    原文地址:http://tutorials.jenkov.com/java-reflection/constructors.html ================================= ...

  6. 第32节:Java中-构造函数,静态方法,继承,封装,多态,包

    构造函数实例 class Cat{ // 设置私有的属性 name private String name; // 设置name的方法 public void setName(String Name) ...

  7. 为什么不允许使用 Java 静态构造函数?

    不允许使用 Java 静态构造函数,但是为什么呢?在深入探讨不允许使用静态构造函数的原因之前,让我们看看如果要使 构造函数静态化 会发生什么. Java 静态构造函数 假设我们有一个定义为的类: pu ...

  8. C#基础(五)——类中私有构造函数作用

    如果类成员有private修饰符,就不允许在类范围以外访问这个类成员.对类构造函数应用private修饰符时,则禁止外部类创建该类的实例.尽管看上去有些不好理解(既然不能实例化,那么这个类还有什么用处 ...

  9. 私有构造函数(c# .NET)

    如果类成员有private修饰符,就不允许在类范围以外访问这个类成员.对类构造函数应用private修饰符时,则禁止外部类创建该类的实例.尽管看上去有些不好理解(既然不能实例化,那么这个类还有什么用处 ...

随机推荐

  1. Cairo Drawing Model

    Cairo Drawing Model Cairo是一个强力的2D绘图库. Destination 是你最终绘图的目标, 可以是一系列Pixel或者绑定到SVG或PDF文件上. Source 是实际在 ...

  2. centos7设置sshd端口,firewall,selinux设置

    https://blog.csdn.net/qq_31927797/article/details/81095829 #停止firewallsystemctl stop firewalld.servi ...

  3. Linux网卡设置为网桥模式

    Linux网卡设置为网桥模式 1.    添加网卡,并修改相关配置文件 1.1虚拟机添加网卡,并配置相关文件 如:eth2为新添加网卡 cd /etc/sysconfig/network-script ...

  4. 51nod 1242 斐波那契数列的第N项——数学、矩阵快速幂

    普通算法肯定T了,所以怎么算呢?和矩阵有啥关系呢? 打数学符号太费时,就手写了: 所以求Fib(n)就是求矩阵  |  1  1  |n-1  第一行第一列的元素. |  1  0  | 其实学过线代 ...

  5. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用

  6. linux 04 CentOS安装

    今天在Vmware上安装了CentOS6.5系统,下午首先把书上的安装过程看了一遍,实际进行操作时有些步骤不一样,经过查资料成功安装,说一下收获.选择自定义安装虚拟机,首先创建空白虚拟机,稍后编辑虚拟 ...

  7. 王小胖之 Base64编码/解码

    使用场景:编码网址作为URL参数,简单编码或加密数据,下载地址生成或解析. 实现功能:BASE64在线编码和解码. 数据实例:王小胖好啊,王小胖顶呱呱!! ~~ english 123 !@#$%^& ...

  8. 我的第一个ajax脚本

    代码如下 //创建XMLHttpRequest对象 var xmlHttp=null; function creatXMLHttp(){ try{ xmlHttp = new XMLHttpReque ...

  9. MIP启发式算法:爬山算法 (Hill climbing)

    本文主要记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文讲述的是求解MIP问题的启发式算法中的爬山算法 (Hill climbing). 目录 前言 Hill climbing 的过程 ...

  10. python中map()函数的用法讲解

    map函数的原型是map(function, iterable, -),它的返回结果是一个列表. 参数function传的是一个函数名,可以是python内置的,也可以是自定义的. 参数iterabl ...