单例类(单例设计模式)[java]
设计模式:解决某一类问题的方案(模式)
单例类:只允许创建一个对象实例的类,称为单例类
单例模式:让一个类在一个程序中只能创建一个对象
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]相关推荐
- java中单例设计模式登记式单例类_java23种设计模式-创建型模式之单例模式
单例模式(Singleton) 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1.某些类创建比较频 ...
- Scala-Unit6-final/type关键字、样例类样例对象
一.关键字 1.final关键字 用final修饰的类:不能被继承 用final修饰的方法:不能被重写 注意:(1)在Scala中变量不需要用final修饰,因为val与var已经限制了变量是否可变 ...
- python单例类命名_单例模式(java/python/c++)
序 最近接触到新项目,后端基于java开发.对于有c++/python开发经验,无java经验的小梅同学,开始了漫漫学习之旅,第一篇学习记录,从最简单的单例模式开始吧. 众所周知,单例模式的最明显的几 ...
- 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )
文章目录 成员函数 常量函数 友元函数 new 创建对象 友元类 单例类 成员函数 此处继续上一篇博客继续向后讲解C++面向对象 类成员方法 , 除了定义构造方法与析构方法之外 , 还可以定义普通的成 ...
- 2021年大数据常用语言Scala(三十二):scala高级用法 样例类
目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例 ...
- Scala模式匹配--样例类--密封样例类--偏函数
Scala模式匹配--样例类--密封样例类--偏函数 模式匹配 等价于java的switch caseval c = '+'c match{case '+' => println(111)cas ...
- 《快学Scala》第14章——模式匹配和样例类 学习笔记
Scala有一个十分强大的模式匹配机制,可以应用在很多场合:switch语句.类型查询,以及"析构"(获取复杂表达式中的不同部分).除此之外,Scala还提供了样例类,对模式匹配进 ...
- java 构造函数 单例_Java中的私有构造函数和单例类 - Break易站
Java 构造函数 Java中的私有构造函数和单例类 我们首先分析下面的问题: 我们可以有私人构造函数吗? 正如你可以很容易猜到的,就像我们可以为构造函数提供访问说明符一样.如果它是私人的,那么它只能 ...
- 设计模式详解:Singleton(单例类)
Singleton(单例类) 设计模式学习:概述 意图 保证每一个类仅有一个实例,并为它提供一个全局访问点. 顾名思义,单例类Singleton保证了程序中同一时刻最多存在该类的一个对象. 有些时候, ...
最新文章
- Python中sklearn中HistGradientBoostingRegressor回归器配置单调约束参数monotonic_cst提高回归模型的抗噪声以及局部扰动的能力
- 万字长文解读运营商搏击5G:一场比拼财力的三国杀
- Git复习(十三)之git revert用法及与git reset区别
- 搞科研、学术的朋友注意了,停下手头的活,再忙也要看一下这个!
- markdown 表格对齐方式、换行、内嵌列表、...
- 大话设计模式—建造者模式
- STL 之map,multimap
- 工作总结9:vue处理token
- Objective-C浮点数转化整数(向上取整、向下取整)
- flex java 全局拦截_Flex CSS阻止底层内容
- php获取汉字的首字母,php获取汉字拼音首字母的函数(真正可以使用的)
- vba中FreezePanes(冻结窗格)用法
- openstack 本地导入镜像.
- 听新闻学英语android版,听新闻学英语
- 【R语言爬虫】R语言提交post请求抓取盈盈理财数据
- 填埋场渗滤液处理工艺
- ZOJ 3328 WuXing
- html a标签小手,a标签
- keil中c99mode(变量可以定义在函数任意位置)
- 如何写出一流期刊文章