设计模式:解决某一类问题的方案(模式)

单例类:只允许创建一个对象实例的类,称为单例类

单例模式:让一个类在一个程序中只能创建一个对象

eg:任务管理器(无论你点击多少次,都只能创建一个窗口)

实现流程:

1.私有化构造方法 (使用private关键字修饰成员变量)

2.声明本类类型的引用,指向本类类型的对象,被static和private共同修饰(由于构造方法被private关键字所修饰,所以在初始化时是在本类中声明,不同于通过测试类来调用构造方法初始化成员变量)

理解:被static修饰是为了将类变量从对象层级上升到类层级,也就是达到这个类中始终只有一个对象的目的,也就是不管你后续在测试类中通过调用共有的方法,都只有一个相同的空间存储对象的内容,只是创建了不同的栈内存的引用而已,但这些引用指向了相同的空间,也就是这些引用(对象)的地址全都相同,其实就是只有一个对象,只是起了不同的名字而已

3.提供共有的get方法,将成员变量也就是类对象的数值返回出去,也就是在外界只能通过get方法进行对象的创建,并且get方法通过static关键字修饰,就从对象层级上升到了类层级,在测试类中就可以通过类名来调用。

案例测试:

public class WindowDemo {//接收唯一的一个对象private static WindowDemo windowDemo = null;//将构造方法设置为私有权限,在其他类中不能随便使用private WindowDemo(){
​}//向外界提供方法,获取唯一的对象public static  WindowDemo getWindow(){//控制生成对象数量if(windowDemo==null){windowDemo = new WindowDemo();}return windowDemo;}
}
public class TestWindow {public static void main(String[] args) {
​//new WindowDemo();//new WindowDemo();
​WindowDemo windowDemo1 =  WindowDemo.getWindow();WindowDemo windowDemo2 =  WindowDemo.getWindow();
​System.out.println(windowDemo1);System.out.println(windowDemo2);}
}

运行结果:

地址相同,说明是同一个对象。

单例类(单例设计模式)[java]相关推荐

  1. java中单例设计模式登记式单例类_java23种设计模式-创建型模式之单例模式

    单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频 ...

  2. Scala-Unit6-final/type关键字、样例类样例对象

    一.关键字 1.final关键字 用final修饰的类:不能被继承 用final修饰的方法:不能被重写 注意:(1)在Scala中变量不需要用final修饰,因为val与var已经限制了变量是否可变 ...

  3. python单例类命名_单例模式(java/python/c++)

    序 最近接触到新项目,后端基于java开发.对于有c++/python开发经验,无java经验的小梅同学,开始了漫漫学习之旅,第一篇学习记录,从最简单的单例模式开始吧. 众所周知,单例模式的最明显的几 ...

  4. 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )

    文章目录 成员函数 常量函数 友元函数 new 创建对象 友元类 单例类 成员函数 此处继续上一篇博客继续向后讲解C++面向对象 类成员方法 , 除了定义构造方法与析构方法之外 , 还可以定义普通的成 ...

  5. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类

    目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例 ...

  6. Scala模式匹配--样例类--密封样例类--偏函数

    Scala模式匹配--样例类--密封样例类--偏函数 模式匹配 等价于java的switch caseval c = '+'c match{case '+' => println(111)cas ...

  7. 《快学Scala》第14章——模式匹配和样例类 学习笔记

    Scala有一个十分强大的模式匹配机制,可以应用在很多场合:switch语句.类型查询,以及"析构"(获取复杂表达式中的不同部分).除此之外,Scala还提供了样例类,对模式匹配进 ...

  8. java 构造函数 单例_Java中的私有构造函数和单例类 - Break易站

    Java 构造函数 Java中的私有构造函数和单例类 我们首先分析下面的问题: 我们可以有私人构造函数吗? 正如你可以很容易猜到的,就像我们可以为构造函数提供访问说明符一样.如果它是私人的,那么它只能 ...

  9. 设计模式详解:Singleton(单例类)

    Singleton(单例类) 设计模式学习:概述 意图 保证每一个类仅有一个实例,并为它提供一个全局访问点. 顾名思义,单例类Singleton保证了程序中同一时刻最多存在该类的一个对象. 有些时候, ...

最新文章

  1. Python中sklearn中HistGradientBoostingRegressor回归器配置单调约束参数monotonic_cst提高回归模型的抗噪声以及局部扰动的能力
  2. 万字长文解读运营商搏击5G:一场比拼财力的三国杀
  3. Git复习(十三)之git revert用法及与git reset区别
  4. 搞科研、学术的朋友注意了,停下手头的活,再忙也要看一下这个!
  5. markdown 表格对齐方式、换行、内嵌列表、...
  6. 大话设计模式—建造者模式
  7. STL 之map,multimap
  8. 工作总结9:vue处理token
  9. Objective-C浮点数转化整数(向上取整、向下取整)
  10. flex java 全局拦截_Flex CSS阻止底层内容
  11. php获取汉字的首字母,php获取汉字拼音首字母的函数(真正可以使用的)
  12. vba中FreezePanes(冻结窗格)用法
  13. openstack 本地导入镜像.
  14. 听新闻学英语android版,听新闻学英语
  15. 【R语言爬虫】R语言提交post请求抓取盈盈理财数据
  16. 填埋场渗滤液处理工艺
  17. ZOJ 3328 WuXing
  18. html a标签小手,a标签
  19. keil中c99mode(变量可以定义在函数任意位置)
  20. 如何写出一流期刊文章

热门文章

  1. 计算机系统关机后自动重启,为什么电脑关机后会自动重启?
  2. Seaborn调色板中所有颜色组合(表格整理版)
  3. Jmeter基础教程合集
  4. 手机引导式html,iOS14中引导式访问模式有什么用
  5. 输入一个数判断该数是否可以被3和7整除
  6. 智慧城市建设的宜昌模式
  7. ResearchRabbit.ai: 学术论文摘要研究工具
  8. 做财务,别让太多的机械工作埋没了你1%的涨薪机会
  9. 设计师发问:云电脑用得了CAD吗
  10. 人为什么要设定长期目标?