JAVA中访问权限修饰符的妙用(单例模式)
来源:互联网 发布:云计算行业研究报告 编辑:程序博客网 时间:2024/06/16 13:46
问:如何在JAVA的应用程序中只有一个由类A创建的对象?
其中要很巧妙的应用访问权限修饰符,这是设计模式中的一种单例模式,具体实现代码及解释如下:
A.javapackage cn.edu.nefu.zhihu;public class A {private static A a=new A(); //私有且为静态的类变量,可以通过类名直接访问,但类外不能直接访问private A(){ //不带参数的私有构造方法,类外不能直接调用}public static A getA(){ ////返回类型为类A类型的公共的且为静态的成员方法,为了类外使用和方便的通过类名进行使用return a;}}test1m.javapackage cn.edu.nefu.zhihu;public class test1m {public static void main(String[] args) {A a1=A.getA();//通过类名直接访问A a2=A.getA();System.out.println(a1==a2); //返回值为true,两者指向同一个空间,则只能通过类A创建一个对象}}测试结果会输出:true
但是此代码有不足之处,在类A中,由于对象a为static类型的,在main()函数中一旦新建一个类便会给其分配空间,这样会产生浪费,所以,改进代码如下:
B.javapackage cn.edu.nefu.zhihu;public class B {private static B b=null;private B(){}public synchronized static B getB(){ //synchronized意为同步的if(b==null)b=new B();return b;}}test2m.javapackage cn.edu.nefu.zhihu;public class test2m {public static void main(String[] args){B b1=B.getB();B b2=B.getB();System.out.println(b1==b2);}}
另外的,
package cn.edu.nefu.zhihu;import java.io.IOException;public class test2m {public static void main(String[] args) throws IOException{Runtime.getRuntime().exec("notepad.exe");//引号中为.exe文件的路径} //也是一种单例模式的应用}
0 0
- JAVA中访问权限修饰符的妙用(单例模式)
- java-06 权限的修饰符以及单例模式
- Java中访问权限修饰符
- java中访问权限修饰符问题
- Java中访问修饰符protected的权限
- java 四中修饰符的访问权限
- 对于JAVA中访问权限修饰符的理解
- Java中访问权限修饰符(转自JavaEye)
- C#中访问修饰符的权限
- Java语言的访问权限修饰符
- Java语言的访问权限修饰符
- Java的修饰符及访问权限
- java修饰符的访问权限
- java的访问权限修饰符
- Java访问权限修饰符的区别
- Java访问权限修饰符的区别
- Java修饰符指代的访问权限
- Java中访问权限和访问修饰符
- DRImageCropper选取图片并裁剪成头像:swift版
- Issues about gradle version and Android Plugin Version
- Java微信公众平台开发(十三)——微信JSSDK中Config配置
- 微信支付
- Java 实现导出excel表 POI
- JAVA中访问权限修饰符的妙用(单例模式)
- xcode升级到7.0,报libsqlite3.0.dylib找不到
- Java微信公众平台开发(十四)【番外篇】——微信web开发者工具使用
- 杭电2102
- 自己动手写SSO(单点登录)
- datePicker改变大小问题
- 气球贷计算器
- scala,spark版本冲突问题
- Kafka性能测试方法及Benchmark报告