面向对象(数组工具类+单例设计模式)-第16天
来源:互联网 发布:三网合一建站cms 开源 编辑:程序博客网 时间:2024/04/28 20:51
面向对象(数组工具类+单例设计模式)
1、数组工具类
将int 数组转换成字符串,格式是:[e1,e2,...]
public static String arrayToString(int[] arr)
{
String str = "[";
for(int x = 0; x < arr.length; x++){
if(x != arr.length - 1)
str = str + arr[x]+ ",";//此时+是连接符的意思
else
str = str + arr[x] + "]";
}
return str;
}
2、 单例设计模式
设计模式:对问题行之有效的解决方式,其实,它是一种思想。
单例设计模式解决的问题:就是可以保证一个类在内存中的对象唯一性。
比如:多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
如何保证对象唯一性呢?
1、不允许其他程序用new创建该类对象。
2、在该类创建一个本类实例。
3、对外提供一个方法让其他程序可以获取该对象。
步骤:
1、私有化该类构造函数。
2、通过new在本类中创建一个本类对象。
3、定义一个公有的方法,将创建的对象返回。
示例(饿汉式):(很饥渴,看到类加载,就也想加载自己的对象)
class Single{
//类已加载,静态对象s就已经存在了
private static Single s = new Single();//创建一个新的本类对象=静态私有化的s(本类实例)。即定义了一个成员变量s。本类中创建一个本类对象。
private Single(){}//私有化构造函数(隐藏构造函数)
//提供方法
public static Single getInstance(){//返回类型是Single类型的。!!!
return s ;//因为它返回的是变量s,而s属于Single类型
}
}
class SingleDemo{
public static void main(String[] args){
Single s1 = Single.getInstance();//Single调用静态方法getInstance
Single s2 = Single. getInstance();//这样就不需要new对象了。直接调用
System.out.println(s1 == s2);
}
}
复制代码
运行结果:
true
P.S.
之所以不用Single.s;的方式获取Single对象,而采用getInstance获取是因为在getInstance方法中我们可以做一些判断来决定是否返回Single的对象,也就是实现了对单例对象的可控。所以,给Single的构造方法加上了private限制,禁止使用者直接采用Single.s;的方式获取。
示例(懒汉式):(没对象的时候,我就懒得加载变量了。哈哈。。)
class Single{
//类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象
//延迟加载形式
private static Single s =null;
private Single(){}//私有化构造函数
public static SinglegetInstance(){
if(s == null)
s = new Single();//建立对象s=Single
return s ;
}
}
classSingleDemo{
public static void main(String[] args){
Single s1 = Single. getInstance();
Single s2 = Single. getInstance();
System.out.println(s1 == s2);
}
}
复制代码
运行结果:
true
- 面向对象(数组工具类+单例设计模式)-第16天
- day08_java面向对象(数组的工具类+单例设计模式+继承)
- 面向对象设计模式--单例模式
- 黑马程序员----面向对象2(主函数、工具类、文档注释、单例设计模式)
- java学习笔记:面向对象编程之工具类的创建与单例设计模式
- javaSE-面向对象-单例设计模式
- 面向对象之单例设计模式
- Java面向对象-单例设计模式
- Java面向对象,单例设计模式
- 面向对象-单例设计模式
- 面向对象 单例设计模式
- 黑马程序员——Java基础---面向对象(单例设计模式)--第6天--第82-83集
- 面向对象设计模式之Singleton单例模式
- 【面向对象】——设计模式之单例模式
- day03--面向对象--设计模式之单例模式
- 面向对象的设计模式(一),单例模式
- 黑马程序员——第6天——(面向对象)Static关键字,对象的初始化过程,对象调用成员过程,单例设计模式
- 黑马程序员-面向对象之单例设计模式
- leetcode 2: Add Two Numbers
- EAIntroView–高度可定制的iOS应用欢迎页通用解决方案
- 例题6.19 有趣的杨辉三角 UVa1384
- win7安装和配置IIS7
- 利用定时/计数器TO从P1输入周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHZ
- 面向对象(数组工具类+单例设计模式)-第16天
- Processing(1) - 练习
- HTTP状态总结
- oracle OCCI编程
- 一个酷炫实用的下拉刷新开源库
- 解决spring mvc中乱码的问题。
- 打包volley
- ssh+mysql 登陆 及增删改成
- mousemove事件,鼠标移动过快时,无法全部响应