Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519368
  • 博文数量: 184
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1172
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-21 13:40
个人简介

技术改变命运

文章分类

全部博文(184)

文章存档

2020年(16)

2017年(12)

2016年(156)

我的朋友

分类: Java

2017-07-17 21:58:41

单例类:如果一个类始终只能创建一个实例,则这个类被称为单例类。
错误代码:

点击(此处)折叠或打开

  1. class Singleton{
  2.     private static Singleton instance;
  3.     private Singleton(){}
  4.     public static Singleton getInstance()
  5.     {
  6.         if (instance == null)
  7.         {
  8.             return new Singleton();//如果这样写的话会返回false,因为创建了两个对象
  9.         }
  10.         return instance;
  11.     }
  12. }
  13. public class Hello {
  14.     public static void main(String[] args)
  15.     {
  16.         Singleton instance1 = Singleton.getInstance();
  17.         Singleton instance2 = Singleton.getInstance();
  18.         System.out.println(instance1==instance2);
  19.         //polymorphicBc.sub();
  20.         
  21.         
  22.         
  23.     }
  24. }
正确写法

点击(此处)折叠或打开

  1. class Singleton{
  2.     private static Singleton instance;
  3.     private Singleton(){}
  4.     public static Singleton getInstance()
  5.     {
  6.         if (instance == null)
  7.         {
  8.             instance = new Singleton();
  9.         }
  10.         return instance;
  11.     }
  12. }
  13. public class Hello {
  14.     public static void main(String[] args)
  15.     {
  16.         Singleton instance1 = Singleton.getInstance();
  17.         Singleton instance2 = Singleton.getInstance();
  18.         System.out.println(instance1==instance2);
  19.         //polymorphicBc.sub();
  20.         
  21.         
  22.         
  23.     }
  24. }
运行结果为true。

关于static方法的小知识点:

点击(此处)折叠或打开

  1. class NullData
  2. {
  3.     public static void test()
  4.     {
  5.         System.out.println("Hello");
  6.     }
  7. }
  8. public class Hello {
  9.        public static void main(String[] args)
  10.        {
  11.            NullData nd = null;
  12.             nd.test();
  13.         }
  14. }
运行结果是:Hello
表明null对象可以访问它所属类的成员。如果一个null对象访问实例成员将会引发NullPointException异常,因为null
表明该实例根本不存在,那么它的实例变量和实例方法自然也不存在。

阅读(1582) | 评论(0) | 转发(0) |
0

上一篇:java初始化块

下一篇:匿名内部类

给主人留下些什么吧!~~